Validate quickstarts #6295
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Validate quickstarts | |
on: | |
workflow_run: | |
workflows: ["Validation Gate"] | |
types: | |
- completed | |
env: | |
COMMIT_SHA: ${{ github.event.workflow_run.head_commit.id }} | |
jobs: | |
ensure-quickstart-ids-are-unique: | |
name: Ensure quickstart ids are unique | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download artifact | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
workflow: validation_gate.yml | |
run_id: ${{ github.event.workflow_run.id }} | |
- name: Get PR number | |
id: get_pr_number | |
run: | | |
export PR_NUMBER=$(cat artifact/pr_number.txt) | |
echo "pr-number=$PR_NUMBER" >> $GITHUB_ENV | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
ref: "refs/pull/${{ env.pr-number }}/merge" | |
- name: Setup workspace | |
uses: './.github/actions/bootstrap' | |
- name: Check for unique names and ids | |
id: validation | |
run: cd utils && yarn check-quickstart-uniqueness | |
- name: Add commit status | |
if: always() | |
uses: './.github/actions/add-commit-status' | |
with: | |
statusContext: "Validation / Quickstart id are unique" | |
state: ${{ job.status }} | |
ensure-images-are-valid: | |
name: Ensure images are valid | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download artifact | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
workflow: validation_gate.yml | |
run_id: ${{ github.event.workflow_run.id }} | |
- name: Get PR number | |
id: get_pr_number | |
run: | | |
export PR_NUMBER=$(cat artifact/pr_number.txt) | |
echo "pr-number=$PR_NUMBER" >> $GITHUB_ENV | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
ref: "refs/pull/${{ env.pr-number }}/merge" | |
- name: Setup workspace | |
uses: './.github/actions/bootstrap' | |
- name: Validate Images | |
id: validation | |
run: cd utils && yarn validate-images | |
- name: Add commit status | |
if: always() | |
uses: './.github/actions/add-commit-status' | |
with: | |
statusContext: "Validation / Image count and extension compliance" | |
state: ${{ job.status }} | |
ensure-icons-exist: | |
name: Ensure icons exist | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download artifact | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
workflow: validation_gate.yml | |
run_id: ${{ github.event.workflow_run.id }} | |
- name: Get PR number | |
id: get_pr_number | |
run: | | |
export PR_NUMBER=$(cat artifact/pr_number.txt) | |
echo "pr-number=$PR_NUMBER" >> $GITHUB_ENV | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
ref: "refs/pull/${{ env.pr-number }}/merge" | |
- name: Setup workspace | |
uses: './.github/actions/bootstrap' | |
- name: Validate Icons | |
id: validation | |
run: cd utils && yarn validate-icons | |
- name: Add commit status | |
if: always() | |
uses: './.github/actions/add-commit-status' | |
with: | |
statusContext: "Validation / Ensure icons exist" | |
state: ${{ job.status }} | |
validate-quickstart: | |
name: Validate Quickstart | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download artifact | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
workflow: validation_gate.yml | |
run_id: ${{ github.event.workflow_run.id }} | |
- name: Get PR number | |
id: get_pr_number | |
run: | | |
export PR_NUMBER=$(cat artifact/pr_number.txt) | |
echo "pr-number=$PR_NUMBER" >> $GITHUB_ENV | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
ref: "refs/pull/${{ env.pr-number }}/merge" | |
- name: Setup workspace | |
uses: './.github/actions/bootstrap' | |
- name: Validate pr quickstart files | |
id: validation | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NR_API_URL: ${{ secrets.NR_API_URL }} | |
NR_API_TOKEN: ${{ secrets.NR_API_TOKEN }} | |
NEW_RELIC_NO_CONFIG_FILE: true | |
NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }} | |
NEW_RELIC_APP_NAME: ${{ secrets.NEW_RELIC_APP_NAME }} | |
NEW_RELIC_HOST: staging-collector.newrelic.com | |
NODE_ENV: production | |
PR_NUMBER: ${{ env.pr-number }} | |
run: | | |
URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/$PR_NUMBER/files" | |
DRY_RUN=true | |
cd utils && yarn create-validate-pr-quickstarts "$URL" "$DRY_RUN" | |
- name: Add commit status | |
if: always() | |
uses: './.github/actions/add-commit-status' | |
with: | |
statusContext: "Validation / Validate Quickstart Schema" | |
state: ${{ job.status }} | |
validate-install-plan-ids: | |
name: Validate install plan ids | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download artifact | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
workflow: validation_gate.yml | |
run_id: ${{ github.event.workflow_run.id }} | |
- name: Get PR number | |
id: get_pr_number | |
run: | | |
export PR_NUMBER=$(cat artifact/pr_number.txt) | |
echo "pr-number=$PR_NUMBER" >> $GITHUB_ENV | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
ref: "refs/pull/${{ env.pr-number }}/merge" | |
- name: Setup workspace | |
uses: './.github/actions/bootstrap' | |
- name: Validate new files | |
id: validation | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
PR_NUMBER: ${{ env.pr-number }} | |
run: | | |
URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/$PR_NUMBER/files" | |
cd utils && yarn validate-quickstart-install-plans "$URL" | |
- name: Add commit status | |
if: always() | |
uses: './.github/actions/add-commit-status' | |
with: | |
statusContext: "Validation / Install plan ids exist" | |
state: ${{ job.status }} | |
ensure-quickstart-dashboard-names-are-unique: | |
name: Ensure quickstart dashboard names are unique | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download artifact | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
workflow: validation_gate.yml | |
run_id: ${{ github.event.workflow_run.id }} | |
- name: Get PR number | |
id: get_pr_number | |
run: | | |
export PR_NUMBER=$(cat artifact/pr_number.txt) | |
echo "pr-number=$PR_NUMBER" >> $GITHUB_ENV | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
ref: "refs/pull/${{ env.pr-number }}/merge" | |
- name: Setup workspace | |
uses: './.github/actions/bootstrap' | |
- name: Check for unique dashboard names | |
id: validation | |
run: cd utils && yarn check-dashboard-name-uniqueness | |
- name: Add commit status | |
if: always() | |
uses: './.github/actions/add-commit-status' | |
with: | |
statusContext: "Validation / Quickstart dashboard name is unique" | |
state: ${{ job.status }} | |
dashboard-helper: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download artifact | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
workflow: validation_gate.yml | |
run_id: ${{ github.event.workflow_run.id }} | |
- name: Get PR number | |
id: get_pr_number | |
run: | | |
export PR_NUMBER=$(cat artifact/pr_number.txt) | |
echo "pr-number=$PR_NUMBER" >> $GITHUB_ENV | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
ref: "refs/pull/${{ env.pr-number }}/merge" | |
- name: Setup workspace | |
uses: './.github/actions/bootstrap' | |
- name: Run dashboard helper | |
id: helper | |
env: | |
PR_NUMBER: ${{ env.pr-number }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/$PR_NUMBER/files" | |
cd utils && yarn dashboard-helper $URL | |
- name: Comment | |
if: steps.helper.outputs.comment != '' | |
env: | |
PR_NUMBER: ${{ env.pr-number }} | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COMMENT: ${{ steps.helper.outputs.comment }} | |
run: | | |
gh pr comment "$PR_NUMBER" --body "$COMMENT" |