diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index c0ad1bd..13bffe1 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -6,6 +6,27 @@ on: - qa - prod jobs: + test: + runs-on: ubuntu-latest + permissions: + actions: write + contents: read + id-token: write + if: github.ref == 'refs/heads/dev' + steps: + - uses: actions/checkout@v4 + - name: Setup api + uses: actions/setup-node@v3 + with: + node-version: '18' + cache: 'npm' + cache-dependency-path: api + - name: Install api dependencies + working-directory: api + run: npm install + - name: Run tests + working-directory: api + run: npm run test deploy: runs-on: ubuntu-latest environment: ${{ github.ref_name }} diff --git a/deployment/lib/api-stack.ts b/deployment/lib/api-stack.ts index 6e0f028..989d266 100644 --- a/deployment/lib/api-stack.ts +++ b/deployment/lib/api-stack.ts @@ -25,6 +25,7 @@ const envFormat = (vars: { [key: string]: string | number }): string => export interface ApiStackProps extends cdk.StackProps { parameters: { + ApiAliasRecordName?: string; ApiDomainName: string; ApplicationName: string; AwsRoute53CloudFrontHostedZoneId: string; @@ -162,7 +163,7 @@ export class ApiStack extends cdk.Stack { const apiTarget = new route53targets.ApiGateway(api); new route53.ARecord(this, "ApiAliasRecord", { - recordName: props.parameters.ApiDomainName, + recordName: props.parameters.ApiAliasRecordName ?? props.parameters.ApiDomainName, zone: apiHostedZone, target: route53.RecordTarget.fromAlias(apiTarget) }); diff --git a/deployment/lib/front-end-stack.ts b/deployment/lib/front-end-stack.ts index 8779ec4..97ad996 100644 --- a/deployment/lib/front-end-stack.ts +++ b/deployment/lib/front-end-stack.ts @@ -10,6 +10,7 @@ import * as s3deployment from "aws-cdk-lib/aws-s3-deployment"; export interface FrontendStackProps extends cdk.StackProps { parameters: { + readonly FrontEndAliasRecordName?: string; readonly FrontEndDomainName: string; readonly HostedZoneName: string; readonly GlobalWafArn: string; @@ -59,7 +60,7 @@ export class FrontEndStack extends cdk.Stack { const cloudFrontTarget = new route53targets.CloudFrontTarget(distribution); new route53.ARecord(this, "distribution-alias-record", { - recordName: parameters.FrontEndDomainName, + recordName: parameters.FrontEndAliasRecordName ?? parameters.FrontEndDomainName, zone: distributionHostedZone, target: route53.RecordTarget.fromAlias(cloudFrontTarget) });