Skip to content

PP-11681 Replace ‘base-client’ with ‘axios-base-client' for webhooks client #3135

PP-11681 Replace ‘base-client’ with ‘axios-base-client' for webhooks client

PP-11681 Replace ‘base-client’ with ‘axios-base-client' for webhooks client #3135

Workflow file for this run

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