Skip to content

Pin azurerm version to 3.104.2 as the latest 3.105.0 version made the build to fail #1217

Pin azurerm version to 3.104.2 as the latest 3.105.0 version made the build to fail

Pin azurerm version to 3.104.2 as the latest 3.105.0 version made the build to fail #1217

Workflow file for this run

name: "Deploy"
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on:
workflow_dispatch:
inputs:
environment:
description: "Deploy environment"
required: true
default: review
type: environment
options:
- review
push:
branches:
- main
pull_request:
branches:
- main
merge_group:
jobs:
lint:
name: Lint
uses: ./.github/workflows/lint.yml
rspec:
name: Run the RSpec tests
uses: ./.github/workflows/rspec.yml
cypress:
name: Run the Cypress tests
uses: ./.github/workflows/cypress.yml
permit-merge:
name: Permit merge
needs: [lint, rspec, cypress]
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@v3
- uses: DFE-Digital/github-actions/build-docker-image@master
id: build-docker-image
with:
docker-repository: ghcr.io/dfe-digital/early-careers-framework
github-token: ${{ secrets.GITHUB_TOKEN }}
brakeman:
name: Run Brakeman vulnerability scanner
uses: ./.github/workflows/brakeman.yml
with:
ruby-version: "3.2.2"
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, brakeman]
runs-on: ubuntu-latest
environment:
name: review
steps:
- uses: actions/checkout@v3
- 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 }}
statuscake-api-token: ${{ secrets.STATUSCAKE_API_TOKEN }}
- name: Post sticky pull request comment
uses: marocchino/sticky-pull-request-comment@v2
with:
message: |
Review app deployed to ${{ steps.deploy.outputs.url }}
run_smoke_tests:
name: Run Smoke tests
needs: [ docker ]
runs-on: ubuntu-latest
if: github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'test-performance')
concurrency: run_smoke_tests_${{ github.event.pull_request.number }}
environment:
name: production
steps:
- name: Checkout code
uses: actions/checkout@v3
- uses: ./.github/actions/test-performance
id: smoke-test
with:
scenario: smoke-test
docker-image: ${{ needs.docker.outputs.docker-image }}
azure-credentials: ${{ secrets.AZURE_CREDENTIALS }}
run_api_performance_tests:
name: Run API performance tests
needs: [docker]
runs-on: ubuntu-latest
if: github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'test-performance')
concurrency: run_api_performance_tests_${{ github.event.pull_request.number }}
environment:
name: production
steps:
- name: Checkout code
uses: actions/checkout@v3
- uses: ./.github/actions/test-performance
id: api-load-test
with:
scenario: api-load-test
docker-image: ${{ needs.docker.outputs.docker-image }}
azure-credentials: ${{ secrets.AZURE_CREDENTIALS }}
deploy_staging:
name: Deploy staging
needs: [docker, rspec, cypress, lint, brakeman]
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@v3
- 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_sandbox:
name: Deploy sandbox
needs: [deploy_staging]
runs-on: ubuntu-latest
environment:
name: sandbox
steps:
- uses: actions/checkout@v3
- 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_migration:
name: Deploy migration
needs: [deploy_staging]
runs-on: ubuntu-latest
environment:
name: migration
steps:
- uses: actions/checkout@v3
- 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_production:
name: Deploy production
needs: [deploy_staging]
runs-on: ubuntu-latest
environment:
name: production
steps:
- uses: actions/checkout@v3
- 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 }}