Skip to content

OAS Conformance Tests #33

OAS Conformance Tests

OAS Conformance Tests #33

name: OAS Conformance Tests
on:
schedule:
# runs at midnight every day
- cron: '0 0 * * *'
workflow_dispatch:
inputs:
environment:
description: Target environment to run conformance tests against
required: true
default: build
type: choice
options:
- dev
- build
concurrency:
group: ${{ github.workflow }}-${{ inputs.environment || 'build' }}
cancel-in-progress: true
jobs:
conformance-tests:
name: Prism Conformance Tests (${{ inputs.environment || 'build' }})
runs-on: ubuntu-24.04
timeout-minutes: 15
defaults:
run:
working-directory: ./status-list-mock
permissions:
contents: read
env:
UPSTREAM_URL: ${{ inputs.environment == 'build' && 'https://status-list-mock.wallet-onboarding.build.account.gov.uk' || 'https://status-list-mock.wallet-onboarding.dev.account.gov.uk' }}
steps:
- name: Check out repository code
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version-file: status-list-mock/.nvmrc
cache: npm
cache-dependency-path: status-list-mock/package-lock.json
- name: Install dependencies
run: npm ci --ignore-scripts
- name: Run Prism conformance tests
run: npm run test:conformance:ci
- name: Stop Prism
if: always()
run: pkill -f "prism proxy" || true
notify-slack-on-failure:
name: Notify Slack on Failure
needs: [ conformance-tests ]
if: failure()
uses: ./.github/workflows/notify-slack-on-failure.yml
secrets:
GH_WORKFLOW_FAILURE_BOT_SLACK_WEBHOOK_URL: ${{ secrets.GH_WORKFLOW_FAILURE_BOT_SLACK_WEBHOOK_URL }}