Skip to content

Validate quickstarts #7470

Validate quickstarts

Validate quickstarts #7470

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 }}
validate-data-source-ids:
name: Validate data source 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 }}
NR_API_URL: ${{ secrets.NR_API_URL }}
NR_API_TOKEN: ${{ secrets.NR_API_TOKEN }}
run: |
URL="https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/$PR_NUMBER/files"
cd utils && yarn validate-quickstart-data-sources "$URL"
- name: Add commit status
if: always()
uses: './.github/actions/add-commit-status'
with:
statusContext: "Validation / Data source 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"