Skip to content

New navigation link #4099

New navigation link

New navigation link #4099

Workflow file for this run

name: "Deploy"
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on:
push:
branches:
- main
pull_request:
branches:
- main
merge_group:
jobs:
lint:
name: Lint
uses: ./.github/workflows/lint.yml
rspec:
name: RSpec
uses: ./.github/workflows/rspec.yml
openapi:
name: Lead Provider OpenAPI Check
uses: ./.github/workflows/lead_provider_openapi_check.yml
all-checks-passed:
name: All checks passed
needs: [lint, rspec]
runs-on: ubuntu-latest
steps:
- run: "echo 'Linting and tests passed, this branch is ready to be merged'"
docker:
name: Build and push Docker image
runs-on: ubuntu-latest
if: github.actor != 'dependabot[bot]' && github.event_name != 'merge_group'
outputs:
docker-image: ${{ steps.build-docker-image.outputs.image }}
steps:
- uses: actions/checkout@v4
- uses: DFE-Digital/github-actions/build-docker-image@master
id: build-docker-image
with:
docker-repository: ghcr.io/dfe-digital/npq-registration
github-token: ${{ secrets.GITHUB_TOKEN }}
deploy_review:
name: Deploy review
concurrency: deploy_review_${{ github.event.pull_request.number }}
if: github.actor != 'dependabot[bot]' && github.event_name == 'pull_request'
needs: [docker]
runs-on: ubuntu-latest
environment:
name: review
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/deploy-environment-to-aks
id: deploy
with:
environment: review
docker-image: ${{ needs.docker.outputs.docker-image }}
azure-credentials: ${{ secrets.AZURE_CREDENTIALS }}
pull-request-number: ${{ github.event.pull_request.number }}
current-commit-sha: ${{ github.event.pull_request.head.sha }}
- name: Post sticky pull request comment
if: github.event_name == 'pull_request'
uses: marocchino/sticky-pull-request-comment@v2
with:
message: |
Review app deployed to ${{ steps.deploy.outputs.url }}
deploy-staging:
name: Deploy staging
needs: [docker, all-checks-passed]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
environment:
name: staging
outputs:
docker-image: ${{ needs.docker.outputs.docker-image }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/deploy-environment-to-aks
id: deploy
with:
environment: staging
docker-image: ${{ needs.docker.outputs.docker-image }}
azure-credentials: ${{ secrets.AZURE_CREDENTIALS }}
current-commit-sha: ${{ github.sha }}
statuscake-api-token: ${{ secrets.STATUSCAKE_API_TOKEN }}
deploy-migration:
name: Deploy migration
needs: [deploy-staging]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
environment:
name: migration
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/deploy-environment-to-aks
id: deploy
with:
environment: migration
docker-image: ${{ needs.deploy-staging.outputs.docker-image }}
azure-credentials: ${{ secrets.AZURE_CREDENTIALS }}
current-commit-sha: ${{ github.sha }}
statuscake-api-token: ${{ secrets.STATUSCAKE_API_TOKEN }}
deploy-separation:
name: Deploy separation
needs: [deploy-staging]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
environment:
name: separation
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/deploy-environment-to-aks
id: deploy
with:
environment: separation
docker-image: ${{ needs.deploy-staging.outputs.docker-image }}
azure-credentials: ${{ secrets.AZURE_CREDENTIALS }}
current-commit-sha: ${{ github.sha }}
statuscake-api-token: ${{ secrets.STATUSCAKE_API_TOKEN }}
deploy-sandbox:
name: Deploy sandbox
needs: [deploy-staging]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
environment:
name: sandbox
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/deploy-environment-to-aks
id: deploy
with:
environment: sandbox
docker-image: ${{ needs.deploy-staging.outputs.docker-image }}
azure-credentials: ${{ secrets.AZURE_CREDENTIALS }}
current-commit-sha: ${{ github.sha }}
statuscake-api-token: ${{ secrets.STATUSCAKE_API_TOKEN }}
deploy-production:
name: Deploy production
needs: [deploy-staging]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
environment:
name: production
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/deploy-environment-to-aks
id: deploy
with:
environment: production
docker-image: ${{ needs.deploy-staging.outputs.docker-image }}
azure-credentials: ${{ secrets.AZURE_CREDENTIALS }}
current-commit-sha: ${{ github.sha }}
statuscake-api-token: ${{ secrets.STATUSCAKE_API_TOKEN }}