name: OpenAPI dev mode check # **What it does**: Checks that the files in lib/rest/static/decorated match # the files in lib/rest/static/dereferenced. Checks that the decorated # schemas in lib/rest/static/decorated are not in development mode. # Development mode schemas have a branch name and development mode tag in the # info.version property. # **Why we have it**: To ensure that we aren't every shipping decorated schemas # that are out of sync with the source derefereced schema. To ensure that # decorated schemas generated locally are not published. Locally generated # decorated schemas are pushing up to the remote for staging purposes only. # **Who does it impact**: Docs content writers updating REST API docs and # the docs engineering team as maintainers of the scripts and workflows. on: workflow_dispatch: push: branches: - main pull_request: paths: - 'lib/rest/static/**' - 'script/rest/**/*.js' - 'script/rest/**/*.json' - 'package*.json' - 'lib/redirects/static/**/*.json' - '.github/workflows/openapi-schema-check.yml' permissions: contents: read # This allows a subsequently queued workflow run to interrupt previous runs concurrency: group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' cancel-in-progress: true jobs: check-schema-versions: if: ${{ github.repository == 'github/docs-internal' }} runs-on: ubuntu-20.04-xl steps: - name: Checkout repository code uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 - name: Setup node uses: actions/setup-node@17f8bd926464a1afa4c6a11669539e9c1ba77048 with: node-version: '16.15.0' cache: npm - name: Install dependencies run: npm ci # Differences between decorated and dereferenced files indicates a problem - name: Generate decorated files to check that there are no differences run: script/rest/update-files.js --decorate-only - name: Check if deref/decorated schemas are dev mode and that they match run: .github/actions-scripts/openapi-schema-branch.js