Renovate Update docker/setup-buildx-action digest to edfb0fe #1575
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: "[Workflow] All branch based pushes" | |
concurrency: | |
group: ${{ github.ref }}-${{ github.workflow }} | |
defaults: | |
run: | |
shell: bash | |
on: | |
pull_request: | |
branches: | |
- main | |
permissions: | |
contents: write | |
security-events: write | |
pull-requests: write | |
actions: none | |
checks: none | |
deployments: none | |
issues: none | |
packages: none | |
repository-projects: none | |
statuses: none | |
jobs: | |
workflow_variables: | |
runs-on: ubuntu-latest | |
name: output workflow variables | |
outputs: | |
parsed_branch: ${{ steps.variables.outputs.branch_formatted }} | |
build_identifier: ${{ steps.variables.outputs.build_identifier }} | |
short_sha: ${{ steps.variables.outputs.short_sha }} | |
steps: | |
- uses: actions/checkout@7cdaf2fbc075e6f3b9ca94cfd6cec5adc8a75622 # pin@v3 | |
- name: extract variables for workflow | |
id: variables | |
env: | |
PR_NUMBER: ${{ github.event.pull_request.number }} | |
run: | | |
export BRANCH=$(echo ${GITHUB_HEAD_REF:-${GITHUB_REF##*/}} | awk -F'_' '{print $1}' | tr -cd '[:alnum:]' | tr '[:upper:]' '[:lower:]' | cut -c1-8) | |
echo "branch_formatted=$(echo ${BRANCH})" >> $GITHUB_OUTPUT | |
echo "build_identifier=$(echo ${BRANCH}${PR_NUMBER})" >> $GITHUB_OUTPUT | |
echo "short_sha=$(echo ${GITHUB_SHA:0:7})" >> $GITHUB_OUTPUT | |
echo ${build_identifier} | |
- uses: actions/labeler@main | |
if: github.event_name == 'pull_request' | |
with: | |
configuration-path: ".github/labeller.yml" | |
repo-token: "${{ secrets.GITHUB_TOKEN }}" | |
sync-labels: true | |
build_web_resources: | |
name: build web resources | |
uses: ./.github/workflows/_web-resources.yml | |
secrets: inherit | |
terraform_lint: | |
name: lint terraform code | |
uses: ./.github/workflows/_lint-terraform.yml | |
needs: | |
- workflow_variables | |
with: | |
workspace: ${{ needs.workflow_variables.outputs.build_identifier }} | |
secrets: inherit | |
test_js: | |
name: test javascript code | |
uses: ./.github/workflows/_test-js.yml | |
needs: | |
- workflow_variables | |
docker_build_scan_push: | |
name: build, scan and push | |
uses: ./.github/workflows/_build-and-push.yml | |
needs: | |
- workflow_variables | |
- build_web_resources | |
with: | |
tag: ${{ needs.workflow_variables.outputs.build_identifier }}-${{ needs.workflow_variables.outputs.short_sha }} | |
branch_name: ${{ needs.workflow_variables.outputs.build_identifier }} | |
push_to_ecr: true | |
secrets: inherit | |
api_unit_tests_1: | |
name: api unit tests 1 | |
uses: ./.github/workflows/_unit-tests-api.yml | |
with: | |
selection: selection-1 | |
branch_name: ${{ needs.workflow_variables.outputs.build_identifier }} | |
needs: | |
- workflow_variables | |
api_unit_tests_2: | |
name: api unit tests 2 | |
uses: ./.github/workflows/_unit-tests-api.yml | |
with: | |
selection: selection-2 | |
branch_name: ${{ needs.workflow_variables.outputs.build_identifier }} | |
needs: | |
- workflow_variables | |
api_unit_tests_3: | |
name: api unit tests 3 | |
uses: ./.github/workflows/_unit-tests-api.yml | |
with: | |
selection: selection-3 | |
branch_name: ${{ needs.workflow_variables.outputs.build_identifier }} | |
needs: | |
- workflow_variables | |
client_unit_tests: | |
name: client unit tests | |
uses: ./.github/workflows/_unit-tests-client.yml | |
needs: | |
- workflow_variables | |
- build_web_resources | |
codecov: | |
name: upload to codecov | |
uses: ./.github/workflows/_codecov.yml | |
needs: | |
- client_unit_tests | |
- api_unit_tests_1 | |
- api_unit_tests_2 | |
- api_unit_tests_3 | |
secrets: inherit | |
synchronisation_unit_tests: | |
name: client unit tests | |
uses: ./.github/workflows/_unit-tests-synchronise-lambda.yml | |
needs: | |
- workflow_variables | |
- docker_build_scan_push | |
terraform_plan_account_development: | |
name: account plan terraform development | |
uses: ./.github/workflows/_run-terraform.yml | |
needs: | |
- workflow_variables | |
- terraform_lint | |
with: | |
workspace: development | |
terraform_path: account | |
container_version: ${{ needs.workflow_variables.outputs.build_identifier }}-${{ needs.workflow_variables.outputs.short_sha }} | |
secrets: inherit | |
terraform_apply_environment: | |
name: environment apply terraform | |
uses: ./.github/workflows/_run-terraform.yml | |
needs: | |
- docker_build_scan_push | |
- terraform_lint | |
- workflow_variables | |
with: | |
workspace: ${{ needs.workflow_variables.outputs.build_identifier }} | |
terraform_path: environment | |
apply: true | |
container_version: ${{ needs.workflow_variables.outputs.build_identifier }}-${{ needs.workflow_variables.outputs.short_sha }} | |
secrets: inherit | |
ecr_scan_results: | |
name: ecr scan results | |
uses: ./.github/workflows/_ecr-scanning.yml | |
with: | |
tag: ${{ needs.workflow_variables.outputs.build_identifier }}-${{ needs.workflow_variables.outputs.short_sha }} | |
needs: | |
- terraform_apply_environment | |
- workflow_variables | |
secrets: inherit | |
scale_services_up: | |
name: scale up services | |
uses: ./.github/workflows/_scale-services.yml | |
needs: | |
- workflow_variables | |
- terraform_apply_environment | |
with: | |
replicas: 10 | |
acu: 16 | |
account: 248804316466 | |
workspace: ${{ needs.workflow_variables.outputs.build_identifier }} | |
secrets: inherit | |
reset_database: | |
name: reset database | |
uses: ./.github/workflows/_run-task.yml | |
needs: | |
- workflow_variables | |
- terraform_apply_environment | |
with: | |
workspace: ${{ needs.workflow_variables.outputs.build_identifier }} | |
task_name: "integration_test_v2" | |
timeout: "500" | |
override: "sh,./tests/Behat/reset-db.sh" | |
secrets: inherit | |
integration_tests_1: | |
name: integration tests frontend 1 | |
uses: ./.github/workflows/_run-task.yml | |
needs: | |
- workflow_variables | |
- reset_database | |
- scale_services_up | |
with: | |
workspace: ${{ needs.workflow_variables.outputs.build_identifier }} | |
task_name: "integration_test_v2" | |
timeout: "1200" | |
override: "sh,./tests/Behat/run-tests-parallel.sh,--tags,@v2_reporting_1,--profile,v2-tests-browserkit" | |
secrets: inherit | |
integration_tests_2: | |
name: integration tests frontend 2 | |
uses: ./.github/workflows/_run-task.yml | |
needs: | |
- workflow_variables | |
- reset_database | |
- scale_services_up | |
with: | |
workspace: ${{ needs.workflow_variables.outputs.build_identifier }} | |
task_name: "integration_test_v2" | |
timeout: "1200" | |
override: "sh,./tests/Behat/run-tests-parallel.sh,--tags,@v2_reporting_2,--profile,v2-tests-browserkit" | |
secrets: inherit | |
integration_tests_admin: | |
name: integration tests admin | |
uses: ./.github/workflows/_run-task.yml | |
needs: | |
- workflow_variables | |
- reset_database | |
- scale_services_up | |
with: | |
workspace: ${{ needs.workflow_variables.outputs.build_identifier }} | |
task_name: "integration_test_v2" | |
timeout: "1200" | |
override: "sh,./tests/Behat/run-tests-parallel.sh,--tags,@v2_admin,--profile,v2-tests-browserkit" | |
secrets: inherit | |
integration_tests_sequential_1: | |
name: integration tests sequential 1 | |
uses: ./.github/workflows/_run-task.yml | |
needs: | |
- workflow_variables | |
- reset_database | |
- scale_services_up | |
with: | |
workspace: ${{ needs.workflow_variables.outputs.build_identifier }} | |
task_name: "integration_test_v2" | |
timeout: "1200" | |
override: "sh,./tests/Behat/run-tests.sh,--tags,@v2_sequential_1,--profile,v2-tests-browserkit" | |
secrets: inherit | |
integration_tests_sequential_2: | |
name: integration tests sequential 2 | |
uses: ./.github/workflows/_run-task.yml | |
needs: | |
- workflow_variables | |
- reset_database | |
- scale_services_up | |
with: | |
workspace: ${{ needs.workflow_variables.outputs.build_identifier }} | |
task_name: "integration_test_v2" | |
timeout: "1200" | |
override: "sh,./tests/Behat/run-tests.sh,--tags,@v2_sequential_2,--profile,v2-tests-browserkit" | |
secrets: inherit | |
integration_tests_sequential_3: | |
name: integration tests sequential 3 | |
uses: ./.github/workflows/_run-task.yml | |
needs: | |
- workflow_variables | |
- reset_database | |
- scale_services_up | |
with: | |
workspace: ${{ needs.workflow_variables.outputs.build_identifier }} | |
task_name: "integration_test_v2" | |
timeout: "1200" | |
override: "sh,./tests/Behat/run-tests.sh,--tags,@v2_sequential_3,--profile,v2-tests-browserkit" | |
secrets: inherit | |
scale_services_down: | |
if: always() | |
name: scale down services | |
uses: ./.github/workflows/_scale-services.yml | |
needs: | |
- workflow_variables | |
- integration_tests_sequential_1 | |
- integration_tests_sequential_2 | |
- integration_tests_sequential_3 | |
- integration_tests_admin | |
- integration_tests_1 | |
- integration_tests_2 | |
with: | |
replicas: 1 | |
acu: 4 | |
account: 248804316466 | |
workspace: ${{ needs.workflow_variables.outputs.build_identifier }} | |
secrets: inherit | |
end_of_workflow: | |
name: end of workflow | |
runs-on: ubuntu-latest | |
needs: | |
- scale_services_down | |
- codecov | |
- workflow_variables | |
steps: | |
- name: workflow ended successfully | |
run: | | |
echo "${{ needs.workflow_variables.outputs.build_identifier }} PR environment tested, built and deployed" | |
echo "Tag Used: ${{ needs.workflow_variables.outputs.build_identifier }}-${{ needs.workflow_variables.outputs.short_sha }}" | |
echo "URL: https://${{ needs.workflow_variables.outputs.build_identifier }}.complete-deputy-report.service.gov.uk" | |
slack_notify_success: | |
name: notify of result | |
uses: ./.github/workflows/_slack-notification.yml | |
needs: | |
- workflow_variables | |
- end_of_workflow | |
with: | |
success: True | |
branch: ${{ needs.workflow_variables.outputs.build_identifier }} | |
account: 248804316466 | |
secrets: inherit | |
slack_notify_failure: | |
name: notify of result | |
uses: ./.github/workflows/_slack-notification.yml | |
if: ${{ failure() }} | |
needs: | |
- workflow_variables | |
- end_of_workflow | |
with: | |
success: false | |
branch: ${{ needs.workflow_variables.outputs.build_identifier }} | |
account: 248804316466 | |
secrets: inherit |