IPA Validation Metrics Release #35
Workflow file for this run
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
# This workflow will generate metrics about the IPA validation on the current OAS | |
# (number of adoptions, violations and exceptions) and upload the data to an S3 bucket. | |
name: IPA Validation Metrics Release | |
on: | |
schedule: | |
- cron: '0 11 * * *' # Runs daily at 11:00 UTC (11 AM UTC) | |
workflow_dispatch: | |
permissions: | |
issues: write | |
contents: write | |
env: | |
NODE_VERSION: '20.x' | |
OAS_BRANCH: 'dev' | |
OAS_FILE: 'openapi/v2.json' | |
IPA_PATH: ${{ github.workspace }}/ipa | |
DEV_OAS_PATH: ${{ github.workspace }}/dev-oas | |
jobs: | |
# Generates and uploads the IPA validation metrics to S3 | |
release-IPA-metrics: | |
name: Release IPA Validation Metrics | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository (scripts) | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 | |
with: | |
sparse-checkout: | |
tools/spectral/ipa | |
package.json | |
package-lock.json | |
path: ipa | |
- name: Checkout repository (dev branch) | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 | |
with: | |
ref: ${{ env.OAS_BRANCH }} | |
sparse-checkout: ${{ env.OAS_FILE }} | |
path: dev-oas | |
- name: Validate OAS file | |
run: | | |
if [ ! -f "dev-oas/${{ env.OAS_FILE }}" ]; then | |
echo "::error::OAS file not found in $OAS_BRANCH branch" | |
exit 1 | |
fi | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: 'npm' | |
- name: Install npm dependencies | |
run: npm install | |
- name: Run Metric Collection Job | |
working-directory: ${{ env.IPA_PATH }}/metrics/scripts | |
run: node runMetricCollection.js "${{ env.DEV_OAS_PATH }}/openapi/v2.json" | |
- name: Dump Metric Collection Job Data to S3 | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.IPA_S3_BUCKET_DW_STAGING_USERNAME }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.IPA_S3_BUCKET_DW_STAGING_PASSWORD }} | |
S3_BUCKET_PREFIX: ${{ secrets.IPA_S3_BUCKET_DW_STAGING_PREFIX }} | |
working-directory: ${{ env.IPA_PATH }}/metrics/scripts | |
run: node dataDump.js | |
# failure-handler: | |
# name: Failure Handler | |
# needs: [ release-IPA-metrics ] | |
# if: ${{ failure() }} | |
# uses: ./.github/workflows/failure-handler.yml | |
# with: | |
# env: ${{ env.OAS_BRANCH }} | |
# release_name: "IPA Metrics" | |
# secrets: | |
# jira_api_token: ${{ secrets.JIRA_API_TOKEN }} |