PP-11681 Replace ‘base-client’ with ‘axios-base-client' for webhooks client #3135
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
name: Github Actions Tests | |
on: | |
workflow_call: | |
pull_request: | |
permissions: | |
contents: read | |
jobs: | |
detect-secrets: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Git checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab | |
- name: Detect secrets | |
uses: alphagov/pay-ci/actions/detect-secrets@master | |
version: | |
runs-on: ubuntu-latest | |
name: Parse versions | |
outputs: | |
node-version: ${{ steps.parse-node-version.outputs.nvmrc }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab | |
- name: Parse Node version | |
id: parse-node-version | |
run: echo "nvmrc=$(cat .nvmrc)" >> $GITHUB_OUTPUT | |
install-and-compile: | |
runs-on: ubuntu-latest | |
name: Install and compile | |
needs: version | |
steps: | |
- name: Checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab | |
- name: Setup | |
uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 | |
with: | |
node-version: ${{ needs.version.outputs.node-version }} | |
- name: Cache build directories | |
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 | |
with: | |
path: | | |
node_modules | |
govuk_modules | |
public | |
key: ${{ runner.os }}-build-id-${{ github.head_ref }}-${{ github.sha }} | |
- name: Cache NPM packages | |
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: ${{ runner.os }}-node- | |
- name: Parse Cypress version | |
id: parse-cypress-version | |
run: echo "CYPRESS_VERSION=$(jq -r '.devDependencies.cypress' package.json)" >> $GITHUB_OUTPUT | |
- name: Cache Cypress | |
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 | |
with: | |
path: ~/.cache/Cypress | |
key: ${{ runner.os }}-cypress-${{ steps.parse-cypress-version.outputs.CYPRESS_VERSION }} | |
- name: Install dependencies | |
run: npm ci | |
- name: Compile | |
run: npm run compile | |
- name: Run lint | |
run: npm run lint | |
unit-tests: | |
runs-on: ubuntu-latest | |
name: Unit tests | |
needs: [version, install-and-compile] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab | |
- name: Setup | |
uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 | |
with: | |
node-version: ${{ needs.version.outputs.node-version }} | |
- name: Cache build directories | |
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 | |
with: | |
path: | | |
node_modules | |
govuk_modules | |
public | |
key: ${{ runner.os }}-build-id-${{ github.head_ref }}-${{ github.sha }} | |
- name: Cache pacts directory | |
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 | |
with: | |
path: pacts | |
key: ${{ runner.os }}-build-id-${{ github.head_ref }}-${{ github.sha }}-pacts | |
- name: Run unit tests | |
run: npm test -- --forbid-only --forbid-pending | |
- name: Check for generated pacts | |
run: | | |
if [ ! -d pacts ]; then | |
echo "The pact files were not generated, this means that no pact results will be published and this build will fail to deploy" | |
exit 1 | |
fi | |
cypress-tests: | |
runs-on: ubuntu-latest | |
name: Cypress tests | |
needs: [version, install-and-compile] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab | |
- name: Setup | |
uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 | |
with: | |
node-version: ${{ needs.version.outputs.node-version }} | |
- name: Cache build directories | |
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 | |
with: | |
path: | | |
node_modules | |
govuk_modules | |
public | |
key: ${{ runner.os }}-build-id-${{ github.head_ref }}-${{ github.sha }} | |
- name: Parse Cypress version | |
id: parse-cypress-version | |
run: echo "CYPRESS_VERSION=$(jq -r '.devDependencies.cypress' package.json)" >> $GITHUB_OUTPUT | |
- name: Cache Cypress | |
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 | |
with: | |
path: ~/.cache/Cypress | |
key: ${{ runner.os }}-cypress-${{ steps.parse-cypress-version.outputs.CYPRESS_VERSION }} | |
- name: Run cypress tests | |
run: | | |
npm run cypress:server > /dev/null 2>&1 & | |
sleep 3 | |
npm run cypress:test | |
check-docker-base-images-are-manifests: | |
uses: alphagov/pay-ci/.github/workflows/_validate_docker_image_is_manifest.yml@master |