diff --git a/.github/actions/build-backend-component/action.yml b/.github/actions/build-backend-component/action.yml deleted file mode 100644 index 58511ec0b..000000000 --- a/.github/actions/build-backend-component/action.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: "Build application" -description: "Build and compile all the assets required to run the application in the container" -inputs: - component: - description: "The backend component to build" - required: true - artifact-name: - description: "The artifact name to store the build cache under" - required: true - default: backend-build -outputs: - artifact-id: - description: "The artifact id for the artifact that was just uploaded or empty if the artifact upload failed." - value: ${{ steps.upload.outputs.artifact-id }} -runs: - using: composite - steps: - - name: Pull repository - id: checkout - uses: actions/checkout@v4 - - - name: Install Node - id: node - uses: actions/setup-node@v4 - with: - cache: npm - node-version: 18 - - - name: Install Node dependencies - id: install - shell: bash - working-directory: backend/${{ inputs.component }} - run: npm install --include-workspace-root - - - name: Archive distribution artifact - id: upload - uses: actions/upload-artifact@v4 - with: - name: ${{ inputs.artifact-name }}-${{ inputs.component }} - retention-days: 7 - path: | - express/dist - express/resources - express/src/views - express/assets/images - express/package*.json - express/manifest.yml diff --git a/.github/workflows/deploy-branch.yml b/.github/workflows/deploy-branch.yml index 03cd18ade..0ca133c18 100644 --- a/.github/workflows/deploy-branch.yml +++ b/.github/workflows/deploy-branch.yml @@ -19,9 +19,11 @@ permissions: jobs: build-frontend-dependencies: - if: contains(github.event.head_commit.message, '[deploy]') == true +# if: contains(github.event.head_commit.message, '[deploy]') == true name: Build frontend runs-on: ubuntu-latest + environment: + name: demo outputs: artifact-name: ${{ steps.build.outputs.artifact-id }} steps: @@ -36,15 +38,15 @@ jobs: artifact-name: frontend-build-demo push-frontend-image: - if: contains(github.event.head_commit.message, '[deploy]') == true +# if: contains(github.event.head_commit.message, '[deploy]') == true name: Push frontend image needs: build-frontend-dependencies runs-on: ubuntu-latest - outputs: - image-uri: ${{ steps.push-image.outputs.image-uri }} environment: name: demo url: ${{ steps.push-image.outputs.image-url }} + outputs: + image-uri: ${{ steps.push-image.outputs.image-uri }} steps: - name: Login to GDS Dev Dynatrace Container Registry uses: docker/login-action@v3 @@ -61,19 +63,19 @@ jobs: aws-role-arn: ${{ vars.DEPLOYMENT_ROLE_ARN }} repository: ${{ vars.FRONTEND_CONTAINER_REPOSITORY_NAME }} image-tags: "${{ github.head_ref || github.ref_name }}" - dockerfile: Dockerfile + dockerfile: infrastructure/frontend/Dockerfile artifact-name: frontend-build-demo artifact-path: dist build-frontend-infrastructure: - if: contains(github.event.head_commit.message, '[deploy]') == true +# if: contains(github.event.head_commit.message, '[deploy]') == true name: Build frontend infrastructure needs: push-frontend-image runs-on: ubuntu-latest + environment: + name: demo outputs: template: ${{ steps.replace-placeholders.outputs.template }} - environment: - name: development steps: - name: Pull repository id: checkout @@ -104,7 +106,7 @@ jobs: path: .aws-sam/build deploy-frontend: - if: contains(github.event.head_commit.message, '[deploy]') == true +# if: contains(github.event.head_commit.message, '[deploy]') == true name: Deploy frontend needs: [ build-frontend-infrastructure, deploy-api, deploy-cognito, deploy-dynamodb ] runs-on: ubuntu-latest @@ -156,10 +158,12 @@ jobs: printf "🌐 Deployment URL\n%s" "$url" >> "$GITHUB_STEP_SUMMARY" echo "url=$url" >> "$GITHUB_OUTPUT" - build-dynamo: - if: contains(github.event.head_commit.message, '[deploy]') == true + build-dynamodb: +# if: contains(github.event.head_commit.message, '[deploy]') == true name: Build dynamodb runs-on: ubuntu-latest + environment: + name: demo outputs: artifact-name: ${{ steps.build.outputs.artifact-name }} cache-key: ${{ steps.build.outputs.cache-key }} @@ -168,7 +172,7 @@ jobs: id: build uses: govuk-one-login/github-actions/sam/build-application@6144f39407b01c9b25b39537b3956deca9e32620 # 22/02/2024 with: - template: backend/dynamodb/cognito.template.yml + template: backend/dynamodb/dynamodb.template.yml base-dir: backend/dynamodb source-dir: backend/dynamodb cache-name: dynamodb-infra @@ -176,10 +180,13 @@ jobs: pull-repository: true deploy-dynamodb: - if: contains(github.event.head_commit.message, '[deploy]') == true +# if: contains(github.event.head_commit.message, '[deploy]') == true name: Deploy dynamodb - needs: build-dynamo + needs: build-dynamodb runs-on: ubuntu-latest + environment: + name: demo + url: ${{ steps.deploy.outputs.stack-url }} outputs: stack-name: ${{ steps.build.outputs.stack-name }} stack-url: ${{ steps.build.outputs.stack-url }} @@ -202,6 +209,8 @@ jobs: disable-rollback: false stack-name-prefix: preview-dynamodb artifact-name: ${{ needs.build-dynamodb.outputs.artifact-name }} + artifact-path: .aws-sam/build + template: .aws-sam/build/template.yaml cache-name: ${{ needs.build-dynamodb.outputs.cache-key }} s3-prefix: sse-preview tags: |- @@ -214,9 +223,11 @@ jobs: DeploymentName=${{ steps.get-deployment-name.outputs.pretty-branch-name }} build-cognito: - if: contains(github.event.head_commit.message, '[deploy]') == true +# if: contains(github.event.head_commit.message, '[deploy]') == true name: Build cognito runs-on: ubuntu-latest + environment: + name: demo outputs: artifact-name: ${{ steps.build.outputs.artifact-name }} cache-key: ${{ steps.build.outputs.cache-key }} @@ -234,10 +245,13 @@ jobs: pull-repository: true deploy-cognito: - if: contains(github.event.head_commit.message, '[deploy]') == true +# if: contains(github.event.head_commit.message, '[deploy]') == true name: Deploy cognito needs: build-cognito runs-on: ubuntu-latest + environment: + name: demo + url: ${{ steps.deploy.outputs.stack-url }} outputs: stack-name: ${{ steps.build.outputs.stack-name }} stack-url: ${{ steps.build.outputs.stack-url }} @@ -259,7 +273,9 @@ jobs: delete-failed-stack: true disable-rollback: false stack-name-prefix: preview-cognito - artifact-name: backend-cognito-infrastructure + artifact-name: ${{ needs.build-cognito.outputs.artifact-name }} + artifact-path: .aws-sam/build + template: .aws-sam/build/template.yaml cache-name: ${{ needs.build-cognito.outputs.cache-key }} s3-prefix: sse-preview tags: |- @@ -272,9 +288,11 @@ jobs: DeploymentName=${{ steps.get-deployment-name.outputs.pretty-branch-name }} build-api: - if: contains(github.event.head_commit.message, '[deploy]') == true +# if: contains(github.event.head_commit.message, '[deploy]') == true name: Build api runs-on: ubuntu-latest + environment: + name: demo outputs: artifact-name: ${{ steps.build.outputs.artifact-name }} cache-key: ${{ steps.build.outputs.cache-key }} @@ -293,10 +311,13 @@ jobs: pull-repository: true deploy-api: - if: contains(github.event.head_commit.message, '[deploy]') == true +# if: contains(github.event.head_commit.message, '[deploy]') == true name: Deploy api needs: build-api runs-on: ubuntu-latest + environment: + name: demo + url: ${{ steps.deploy.outputs.stack-url }} outputs: stack-name: ${{ steps.build.outputs.stack-name }} stack-url: ${{ steps.build.outputs.stack-url }} @@ -318,7 +339,9 @@ jobs: delete-failed-stack: true disable-rollback: false stack-name-prefix: preview-api - artifact-name: backend-api-infrastructure + artifact-name: ${{ needs.build-api.outputs.artifact-name }} + artifact-path: .aws-sam/build + template: .aws-sam/build/template.yaml cache-name: ${{ needs.build-api.outputs.cache-key }} s3-prefix: sse-preview tags: |- diff --git a/backend/api/api.template.yml b/backend/api/api.template.yml index 310b55f0e..0edd87253 100644 --- a/backend/api/api.template.yml +++ b/backend/api/api.template.yml @@ -366,7 +366,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/dynamodb/get-user.getUserHandler + Handler: src/handlers/dynamodb/get-user.getUserHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -401,7 +401,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/dynamodb/put-user.putUserHandler + Handler: src/handlers/dynamodb/put-user.putUserHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -436,7 +436,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/dynamodb/update-user.updateUserHandler + Handler: src/handlers/dynamodb/update-user.updateUserHandler Description: Updates user data in DynamoDB CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active @@ -474,7 +474,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/dynamodb/get-services.getServicesHandler + Handler: src/handlers/dynamodb/get-services.getServicesHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -509,7 +509,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/dynamodb/get-session-count.getSessionCountHandler + Handler: src/handlers/dynamodb/get-session-count.getSessionCountHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -544,7 +544,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/dynamodb/global-sign-out.globalSignOutHandler + Handler: src/handlers/dynamodb/global-sign-out.globalSignOutHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -579,7 +579,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/dynamodb/put-service.putServiceHandler + Handler: src/handlers/dynamodb/put-service.putServiceHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -609,7 +609,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/dynamodb/get-service-clients.getServiceClientsHandler + Handler: src/handlers/dynamodb/get-service-clients.getServiceClientsHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -644,7 +644,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/dynamodb/put-service-client.putServiceClientHandler + Handler: src/handlers/dynamodb/put-service-client.putServiceClientHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -673,7 +673,7 @@ Resources: # AWS SDK v3 dependencies are already included in the lambda runtime - "@aws-sdk/*" Properties: - Handler: backend/api/src/handlers/dynamodb/update-service.updateServiceHandler + Handler: src/handlers/dynamodb/update-service.updateServiceHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -704,7 +704,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/dynamodb/update-service-client.updateServiceClientHandler + Handler: src/handlers/dynamodb/update-service-client.updateServiceClientHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -734,7 +734,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/dynamodb/put-service-user.putServiceUserHandler + Handler: src/handlers/dynamodb/put-service-user.putServiceUserHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -765,7 +765,7 @@ Resources: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: Description: Assumes a cross-account role and invokes the Auth register Lambda - Handler: backend/api/src/handlers/auth/register-client.registerClientHandler + Handler: src/handlers/auth/register-client.registerClientHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -794,7 +794,7 @@ Resources: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: Description: Updates a client using an HTTP endpoint - Handler: backend/api/src/handlers/auth/update-client.updateClientInRegistryHandler + Handler: src/handlers/auth/update-client.updateClientInRegistryHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -824,7 +824,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/step-functions/new-service.newServiceHandler + Handler: src/handlers/step-functions/new-service.newServiceHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -860,7 +860,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/step-functions/new-client.newClientHandler + Handler: src/handlers/step-functions/new-client.newClientHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -896,7 +896,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/step-functions/update-client.doUpdateClientHandler + Handler: src/handlers/step-functions/update-client.doUpdateClientHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -931,7 +931,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/step-functions/update-service.doUpdateServiceHandler + Handler: src/handlers/step-functions/update-service.doUpdateServiceHandler Description: Updates service data in DynamoDB and Client Registry CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active @@ -1008,7 +1008,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/logging/sqs-service.sendSQSMessageToTxMAHandler + Handler: src/handlers/logging/sqs-service.sendSQSMessageToTxMAHandler Description: Sends a message to the TxMA SQS CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Policies: @@ -1230,7 +1230,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/dynamodb/dynamo-db-service.getDynamoDBEntriesHandler + Handler: src/handlers/dynamodb/dynamo-db-service.getDynamoDBEntriesHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -1265,7 +1265,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/dynamodb/dynamo-db-service.deleteDynamoDBClientEntriesHandler + Handler: src/handlers/dynamodb/dynamo-db-service.deleteDynamoDBClientEntriesHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: @@ -1300,7 +1300,7 @@ Resources: External: - "@aws-sdk/*" # AWS SDK v3 dependencies are already included in the lambda runtime Properties: - Handler: backend/api/src/handlers/dynamodb/dynamo-db-service.deleteDynamoDBServiceEntriesHandler + Handler: src/handlers/dynamodb/dynamo-db-service.deleteDynamoDBServiceEntriesHandler CodeSigningConfigArn: !If [ UseCodeSigning, !Ref CodeSigningConfigArn, !Ref AWS::NoValue ] Tracing: Active Policies: