Skip to content
This repository has been archived by the owner on Dec 10, 2024. It is now read-only.

FS-3337 #445

Merged
merged 5 commits into from
Oct 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 101 additions & 0 deletions .github/workflows/copilot_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Deploy to AWS

on:
workflow_dispatch:
inputs:
environment:
description: Which AWS Account to use
type: choice
required: true
options:
- test
- uat
run_performance_tests:
required: false
default: false
type: boolean
description: Run performance tests
run_e2e_tests:
required: false
default: false
type: boolean
description: Run e2e tests
push:
paths: # Ignore README markdown and only deploy when something in the copilot folder has changed
- 'copilot/**'
- '!**/README.md'
pull_request:
types:
- closed # Further protection - only allow this workflow to run automatically on closed pull requests

jobs:
paketo_build:
permissions:
packages: write
uses: communitiesuk/funding-service-design-workflows/.github/workflows/package.yml@main
with:
version_to_build: $(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
owner: ${{ github.repository_owner }}
application: funding-service-design-assessment
assets_required: true
pre_deploy_tests:
secrets:
E2E_PAT: ${{secrets.E2E_PAT}}
uses: communitiesuk/funding-design-service-workflows/.github/workflows/pre-deploy.yml@main
with:
postgres_unit_testing: false
copilot_build:
if: github.event.pull_request.merged == true
permissions:
id-token: write # This is required for requesting the JWT
contents: read # This is required for actions/checkout
runs-on: ubuntu-latest
environment: ${{ inputs.environment || 'test' }}
steps:
- name: Git clone the repository
uses: actions/checkout@v3

- name: Get current date
id: currentdatetime
run: echo "datetime=$(date +'%Y%m%d%H%M%S')" >> $GITHUB_OUTPUT

- name: configure aws credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT }}:role/GithubCopilotDeploy
role-session-name: ASSESSMENT_COPILOT_${{ steps.currentdatetime.outputs.datetime }}
aws-region: eu-west-2

- name: Install AWS Copilot CLI
run: |
curl -Lo aws-copilot https://github.com/aws/copilot-cli/releases/latest/download/copilot-linux && chmod +x aws-copilot && sudo mv aws-copilot /usr/local/bin/copilot

- name: Inject Git SHA into manifest
run: |
yq -i '.variables.GITHUB_SHA = "${{ github.sha }}"' copilot/fsd-assessment/manifest.yml

- name: Inject RSA256_PUBLIC_KEY_BASE64 into manifest
run: |
yq -i '.variables.RSA256_PUBLIC_KEY_BASE64 = "${{ secrets.RSA256_PUBLIC_KEY_BASE64 }}"' copilot/fsd-assessment/manifest.yml

- name: Inject replacement image into manifest
run: |
yq -i '.image.location = "ghcr.io/communitiesuk/funding-service-design-assessment:${{ github.ref_name }}"' copilot/fsd-assessment/manifest.yml

- name: Replace AUTHENTICATOR_HOST variable
if: ${{ inputs.environment == 'prod' }}
run: |
yq -i '.variables.AUTHENTICATOR_HOST = "https://authenticator.${{ inputs.environment }}.levellingup.gov.uk"' copilot/fsd-assessment/manifest.yml

- name: Copilot deploy
run: |
copilot deploy --env ${{ inputs.environment || 'test' }}
post_deploy_tests:
needs: copilot_build
secrets:
E2E_PAT: ${{secrets.E2E_PAT}}
uses: communitiesuk/funding-service-design-workflows/.github/workflows/post-deploy.yml@main
with:
run_performance_tests: ${{ inputs.run_performance_tests }}
run_e2e_tests: ${{ inputs.run_e2e_tests }}
app_name: assessment
77 changes: 0 additions & 77 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,6 @@
name: Deploy to Gov PaaS

on:
workflow_dispatch:
inputs:
environment:
description: Which AWS Account to use
type: choice
required: true
options:
- test
- uat
copilot:
description: Whether to deploy
type: boolean
required: false
default: false
push:
paths-ignore:
- '**/README.md'
Expand All @@ -38,66 +24,3 @@ jobs:
CF_PASSWORD: ${{secrets.CF_PASSWORD}}
E2E_PAT: ${{secrets.E2E_PAT}}
RSA256_PUBLIC_KEY_BASE64: ${{secrets.RSA256_PUBLIC_KEY_BASE64}}
paketo_build:
permissions:
packages: write
uses: communitiesuk/funding-service-design-workflows/.github/workflows/package.yml@main
with:
version_to_build: $(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
owner: ${{ github.repository_owner }}
application: funding-service-design-assessment
assets_required: true
pre_deploy_tests:
if: ${{ github.event.inputs.copilot }}
secrets:
E2E_PAT: ${{secrets.E2E_PAT}}
uses: communitiesuk/funding-design-service-workflows/.github/workflows/pre-deploy.yml@main
with:
postgres_unit_testing: false
copilot_build:
if: ${{ github.event.inputs.copilot }}
concurrency: deploy-${{ inputs.environment || 'test' }}
permissions:
id-token: write # This is required for requesting the JWT
contents: read # This is required for actions/checkout
runs-on: ubuntu-latest
environment: ${{ inputs.environment || 'test' }}
steps:
- name: Git clone the repository
uses: actions/checkout@v3

- name: Get current date
id: currentdatetime
run: echo "datetime=$(date +'%Y%m%d%H%M%S')" >> $GITHUB_OUTPUT

- name: configure aws credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT }}:role/GithubCopilotDeploy
role-session-name: ASSESSMENT_COPILOT_${{ steps.currentdatetime.outputs.datetime }}
aws-region: eu-west-2

- name: Install AWS Copilot CLI
run: |
curl -Lo aws-copilot https://github.com/aws/copilot-cli/releases/latest/download/copilot-linux && chmod +x aws-copilot && sudo mv aws-copilot /usr/local/bin/copilot

- name: Inject Git SHA into manifest
run: |
yq -i '.variables.GITHUB_SHA = "${{ github.sha }}"' copilot/fsd-assessment/manifest.yml

- name: Inject RSA256_PUBLIC_KEY_BASE64 into manifest
run: |
yq -i '.variables.RSA256_PUBLIC_KEY_BASE64 = "${{ secrets.RSA256_PUBLIC_KEY_BASE64 }}"' copilot/fsd-assessment/manifest.yml

- name: Inject replacement image into manifest
run: |
yq -i '.image.location = "ghcr.io/communitiesuk/funding-service-design-assessment:${{ github.ref_name }}"' copilot/fsd-assessment/manifest.yml

- name: Replace AUTHENTICATOR_HOST variable
if: ${{ inputs.environment == 'prod' }}
run: |
yq -i '.variables.AUTHENTICATOR_HOST = "https://authenticator.${{ inputs.environment }}.levellingup.gov.uk"' copilot/fsd-assessment/manifest.yml

- name: Copilot deploy
run: |
copilot deploy --env ${{ inputs.environment || 'test' }}