From ef2864f9d5838e7967b40a7712222bae6cccd2c9 Mon Sep 17 00:00:00 2001 From: Matthew Warman Date: Fri, 11 Apr 2025 14:26:21 -0400 Subject: [PATCH 01/13] #122 organize AWS resources --- template.yml => .aws/cfn/app.yml | 0 .github/workflows/ci.yml | 2 +- .github/workflows/deploy-dev.yml | 2 +- .github/workflows/deploy-prod.yml | 2 +- .github/workflows/deploy-qa.yml | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) rename template.yml => .aws/cfn/app.yml (100%) diff --git a/template.yml b/.aws/cfn/app.yml similarity index 100% rename from template.yml rename to .aws/cfn/app.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 226f9a0..0a9a521 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ concurrency: cancel-in-progress: true env: - AWS_CFN_TEMPLATE: template.yml + AWS_CFN_TEMPLATE: .aws/cfn/app.yml AWS_REGION: ${{ vars.AWS_REGION }} AWS_ROLE_ARN: ${{ vars.AWS_ROLE_ARN_DEV }} ENV_FILE: ${{ secrets.ENV_CI }} diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml index 4556ced..4059b30 100644 --- a/.github/workflows/deploy-dev.yml +++ b/.github/workflows/deploy-dev.yml @@ -13,7 +13,7 @@ concurrency: env: APP_NAME: react-starter.leanstacks.net AWS_CFN_STACK_NAME: ls-ui-reactstarter-resources-dev - AWS_CFN_TEMPLATE: template.yml + AWS_CFN_TEMPLATE: .aws/cfn/app.yml AWS_ENV_CODE: dev AWS_REGION: ${{ vars.AWS_REGION }} AWS_ROLE_ARN: ${{ vars.AWS_ROLE_ARN_DEV }} diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index af81041..f1a55e3 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -14,7 +14,7 @@ concurrency: env: APP_NAME: react-starter.leanstacks.net AWS_CFN_STACK_NAME: ls-ui-reactstarter-resources-prod - AWS_CFN_TEMPLATE: template.yml + AWS_CFN_TEMPLATE: .aws/cfn/app.yml AWS_ENV_CODE: prod AWS_REGION: ${{ vars.AWS_REGION }} AWS_ROLE_ARN: ${{ vars.AWS_ROLE_ARN_PROD }} diff --git a/.github/workflows/deploy-qa.yml b/.github/workflows/deploy-qa.yml index 666da4a..f9ba012 100644 --- a/.github/workflows/deploy-qa.yml +++ b/.github/workflows/deploy-qa.yml @@ -13,7 +13,7 @@ concurrency: env: APP_NAME: react-starter.leanstacks.net AWS_CFN_STACK_NAME: ls-ui-reactstarter-resources-qa - AWS_CFN_TEMPLATE: template.yml + AWS_CFN_TEMPLATE: .aws/cfn/app.yml AWS_ENV_CODE: qa AWS_REGION: ${{ vars.AWS_REGION }} AWS_ROLE_ARN: ${{ vars.AWS_ROLE_ARN_QA }} From 430c3a7d557cbd25966cc7d107396ddb85ee8ca3 Mon Sep 17 00:00:00 2001 From: Matthew Warman Date: Fri, 11 Apr 2025 14:26:36 -0400 Subject: [PATCH 02/13] #122 storybook CFN template and actions --- .aws/cfn/storybook.yml | 152 +++++++++++++++++++++ .github/workflows/deploy-storybook-dev.yml | 32 +++++ .github/workflows/deploy-storybook.yml | 99 ++++++++++++++ 3 files changed, 283 insertions(+) create mode 100644 .aws/cfn/storybook.yml create mode 100644 .github/workflows/deploy-storybook-dev.yml create mode 100644 .github/workflows/deploy-storybook.yml diff --git a/.aws/cfn/storybook.yml b/.aws/cfn/storybook.yml new file mode 100644 index 0000000..3dda615 --- /dev/null +++ b/.aws/cfn/storybook.yml @@ -0,0 +1,152 @@ +Description: React Starter UI Storybook component resources + +Parameters: + EnvironmentCode: + Type: String + Description: Select an Environment + AllowedValues: + - dev + - qa + - prod + Default: dev + ConstraintDescription: Must select a valid environment + +Mappings: + EnvironmentAttributeMap: + dev: + CertificateArn: arn:aws:acm:us-east-1:988218269141:certificate/3d110b0f-8b3d-4ddc-bbd8-fab08ae6f038 + CloudFrontOAID: E2U9SKLVDD8TPN + HostedZone: dev.leanstacks.net + qa: + CertificateArn: arn:aws:acm:us-east-1:339939222800:certificate/5cd1bce7-1323-4625-a49e-5e72d1cff7ef + CloudFrontOAID: E322H9D7WOKWXW + HostedZone: qa.leanstacks.net + prod: + CertificateArn: arn:aws:acm:us-east-1:854599584783:certificate/fc25a13b-0c9f-4c79-a20f-a13f5d2245b3 + CloudFrontOAID: EVMQ2O0M1MS7S + HostedZone: leanstacks.net + +Resources: + ## + # S3 Bucket for the Storybook App + ## + BucketApp: + Type: AWS::S3::Bucket + Properties: + BucketName: !Sub + - 'reactstarter-ui-storybook.${HostedZone}-${AWS::Region}-${AWS::AccountId}' + - HostedZone: !FindInMap [EnvironmentAttributeMap, !Ref EnvironmentCode, HostedZone] + + ## + # Bucket Policy allows access from AWS CloudFront + ## + BucketPolicyApp: + Type: AWS::S3::BucketPolicy + Properties: + Bucket: !Ref BucketApp + PolicyDocument: + Statement: + - Action: + - s3:GetObject + Effect: Allow + Resource: !Join + - '' + - - 'arn:aws:s3:::' + - !Ref BucketApp + - '/*' + Principal: + AWS: !Sub + - 'arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity ${CloudFrontOAID}' + - CloudFrontOAID: + !FindInMap [EnvironmentAttributeMap, !Ref EnvironmentCode, CloudFrontOAID] + + ## + # CloudFront Distribution for the Storybook App - SPA errors and behaviors + ## + DistributionUi: + Type: AWS::CloudFront::Distribution + Properties: + DistributionConfig: + Comment: !Sub 'React Starter UI Storybook (${EnvironmentCode})' + Aliases: + - !Sub + - 'react-starter-storybook.${HostedZone}' + - HostedZone: !FindInMap [EnvironmentAttributeMap, !Ref EnvironmentCode, HostedZone] + CustomErrorResponses: + - ErrorCode: 404 + ResponsePagePath: '/index.html' + ResponseCode: 200 + - ErrorCode: 403 + ResponsePagePath: '/index.html' + ResponseCode: 200 + DefaultCacheBehavior: + AllowedMethods: + - GET + - HEAD + - OPTIONS + DefaultTTL: 60 + ForwardedValues: + Cookies: + Forward: none + QueryString: false + TargetOriginId: S3-APP + ViewerProtocolPolicy: redirect-to-https + DefaultRootObject: index.html + Enabled: true + HttpVersion: http2 + Origins: + - DomainName: !GetAtt BucketApp.DomainName + Id: S3-APP + S3OriginConfig: + OriginAccessIdentity: !Sub + - 'origin-access-identity/cloudfront/${CloudFrontOAID}' + - CloudFrontOAID: + !FindInMap [EnvironmentAttributeMap, !Ref EnvironmentCode, CloudFrontOAID] + PriceClass: PriceClass_100 + ViewerCertificate: + AcmCertificateArn: + !FindInMap [EnvironmentAttributeMap, !Ref EnvironmentCode, CertificateArn] + SslSupportMethod: sni-only + + ## + # Route53 'A' record for the Storybook CloudFront Distribution + ## + RecordSetAppA: + Type: AWS::Route53::RecordSet + Properties: + HostedZoneName: !Sub + - '${HostedZone}.' + - HostedZone: !FindInMap [EnvironmentAttributeMap, !Ref EnvironmentCode, HostedZone] + Name: !Sub + - 'react-starter-storybook.${HostedZone}' + - HostedZone: !FindInMap [EnvironmentAttributeMap, !Ref EnvironmentCode, HostedZone] + Type: A + AliasTarget: + HostedZoneId: Z2FDTNDATAQYW2 + DNSName: !GetAtt DistributionApp.DomainName + + ## + # Route53 'AAAA' record for the Storybook CloudFront Distribution + ## + RecordSetAppAAAA: + Type: AWS::Route53::RecordSet + Properties: + HostedZoneName: !Sub + - '${HostedZone}.' + - HostedZone: !FindInMap [EnvironmentAttributeMap, !Ref EnvironmentCode, HostedZone] + Name: !Sub + - 'react-starter-storybook.${HostedZone}' + - HostedZone: !FindInMap [EnvironmentAttributeMap, !Ref EnvironmentCode, HostedZone] + Type: AAAA + AliasTarget: + HostedZoneId: Z2FDTNDATAQYW2 + DNSName: !GetAtt DistributionApp.DomainName + +Outputs: + AppBucketName: + Description: The application S3 bucket name + Value: !Ref BucketApp + + DomainName: + Description: The application domain name + Value: !Ref RecordSetAppA diff --git a/.github/workflows/deploy-storybook-dev.yml b/.github/workflows/deploy-storybook-dev.yml new file mode 100644 index 0000000..9c60593 --- /dev/null +++ b/.github/workflows/deploy-storybook-dev.yml @@ -0,0 +1,32 @@ +name: Deploy to Development + +on: + push: + branches: + - main + tags: + - dev + +concurrency: + group: ${{ github.workflow }} + +env: + AWS_CFN_STACK_NAME: ls-ui-reactstarter-storybook-resources-dev + AWS_CFN_TEMPLATE: .aws/cfn/storybook.yml + AWS_ENV_CODE: dev + AWS_REGION: ${{ vars.AWS_REGION }} + AWS_ROLE_ARN: ${{ vars.AWS_ROLE_ARN_DEV }} + ENV_FILE: ${{ secrets.ENV_DEV }} + +jobs: + storybook: + uses: ./.github/workflows/deploy-storybook.yml + with: + aws_cfn_stack_name: ${{ env.AWS_CFN_STACK_NAME }} + aws_cfn_template: ${{ env.AWS_CFN_TEMPLATE }} + aws_env_code: ${{ env.AWS_ENV_CODE }} + aws_region: ${{ env.AWS_REGION }} + aws_role_arn: ${{ env.AWS_ROLE_ARN }} + env_file: ${{ env.ENV_FILE }} + secrets: + env_file: ${{ secrets.ENV_DEV }} diff --git a/.github/workflows/deploy-storybook.yml b/.github/workflows/deploy-storybook.yml new file mode 100644 index 0000000..d9afd29 --- /dev/null +++ b/.github/workflows/deploy-storybook.yml @@ -0,0 +1,99 @@ +name: Deploy Storybook + +on: + workflow_call: + inputs: + aws_region: + required: false + type: string + default: 'us-east-1' + aws_role_arn: + required: true + type: string + aws_cfn_stack_name: + required: true + type: string + aws_cfn_template: + required: false + type: string + default: '.aws/cfn/storybook.yml' + env: + required: false + type: string + default: 'dev' + secrets: + env_file: + required: true + +concurrency: + group: ${{ github.workflow }} + +env: + APP_NAME: react-starter-storybook.leanstacks.net + +jobs: + deploy: + name: Deploy + + runs-on: ubuntu-latest + timeout-minutes: 20 + + permissions: + id-token: write + contents: read + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js Environment + uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + cache: npm + + - name: Install Dependencies + run: npm ci + + - name: Create Environment Configuration + run: | + echo "${{ secrets.env_file }}" > .env + echo "VITE_BUILD_DATE=$(date +'%Y-%m-%d')" >> .env + echo "VITE_BUILD_TIME=$(date +'%H:%M:%S%z')" >> .env + echo "VITE_BUILD_TS=$(date +'%Y-%m-%dT%H:%M:%S%z')" >> .env + echo "VITE_BUILD_COMMIT_SHA=${{ github.sha }}" >> .env + echo "VITE_BUILD_ENV_CODE=${{ inputs.env }}" >> .env + echo "VITE_BUILD_WORKFLOW_NAME=${{ github.workflow }}" >> .env + echo "VITE_BUILD_WORKFLOW_RUN_NUMBER=${{ github.run_number }}" >> .env + echo "VITE_BUILD_WORKFLOW_RUN_ATTEMPT=${{ github.run_attempt }}" >> .env + + - name: Build + run: npm run build:storybook + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ inputs.aws_role_arn }} + aws-region: ${{ inputs.aws_region }} + + - name: Deploy AWS CloudFormation Stack + run: |- + aws cloudformation deploy \ + --stack-name ${{ inputs.aws_cfn_stack_name }} \ + --template-file ${{ inputs.aws_cfn_template }} \ + --parameter-overrides EnvironmentCode=${{ inputs.env }} \ + --tags App=${{ env.APP_NAME }} Env=${{ inputs.env }} OU=leanstacks Owner='Matthew Warman' + + - name: Get CloudFormation Stack Outputs + id: cloudformation + run: |- + APP_BUCKET_NAME=$( + aws cloudformation describe-stacks \ + --stack-name ${{ inputs.aws_cfn_stack_name }} \ + --query "Stacks[0].Outputs[?OutputKey=='AppBucketName'].OutputValue | [0]" + ) + echo "APP_BUCKET_NAME=$APP_BUCKET_NAME" >> "$GITHUB_OUTPUT" + + - name: Deploy to AWS S3 + run: | + aws s3 sync storybook-static s3://${{ steps.cloudformation.outputs.APP_BUCKET_NAME }} --delete From fe5b212821345ded17934040e12d1fd343ab36f0 Mon Sep 17 00:00:00 2001 From: Matthew Warman Date: Fri, 11 Apr 2025 14:33:08 -0400 Subject: [PATCH 03/13] #122 storybook workflow --- .github/workflows/deploy-storybook-dev.yml | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/.github/workflows/deploy-storybook-dev.yml b/.github/workflows/deploy-storybook-dev.yml index 9c60593..8018e99 100644 --- a/.github/workflows/deploy-storybook-dev.yml +++ b/.github/workflows/deploy-storybook-dev.yml @@ -1,4 +1,4 @@ -name: Deploy to Development +name: Deploy Storybook to Development on: push: @@ -10,23 +10,14 @@ on: concurrency: group: ${{ github.workflow }} -env: - AWS_CFN_STACK_NAME: ls-ui-reactstarter-storybook-resources-dev - AWS_CFN_TEMPLATE: .aws/cfn/storybook.yml - AWS_ENV_CODE: dev - AWS_REGION: ${{ vars.AWS_REGION }} - AWS_ROLE_ARN: ${{ vars.AWS_ROLE_ARN_DEV }} - ENV_FILE: ${{ secrets.ENV_DEV }} - jobs: storybook: uses: ./.github/workflows/deploy-storybook.yml with: - aws_cfn_stack_name: ${{ env.AWS_CFN_STACK_NAME }} - aws_cfn_template: ${{ env.AWS_CFN_TEMPLATE }} - aws_env_code: ${{ env.AWS_ENV_CODE }} - aws_region: ${{ env.AWS_REGION }} - aws_role_arn: ${{ env.AWS_ROLE_ARN }} - env_file: ${{ env.ENV_FILE }} + aws_cfn_stack_name: ls-ui-reactstarter-storybook-resources-dev + aws_cfn_template: .aws/cfn/storybook.yml + aws_region: ${{ vars.AWS_REGION }} + aws_role_arn: ${{ vars.AWS_ROLE_ARN_DEV }} + env: dev secrets: env_file: ${{ secrets.ENV_DEV }} From 974a60c57a313befe90d3c07330ba5231bba0b4a Mon Sep 17 00:00:00 2001 From: Matthew Warman Date: Fri, 11 Apr 2025 14:34:39 -0400 Subject: [PATCH 04/13] #122 concurrency --- .github/workflows/deploy-storybook.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/deploy-storybook.yml b/.github/workflows/deploy-storybook.yml index d9afd29..7e4db82 100644 --- a/.github/workflows/deploy-storybook.yml +++ b/.github/workflows/deploy-storybook.yml @@ -25,9 +25,6 @@ on: env_file: required: true -concurrency: - group: ${{ github.workflow }} - env: APP_NAME: react-starter-storybook.leanstacks.net From 58616de6cffa00e4d1151cfdb14b262a6f6215ce Mon Sep 17 00:00:00 2001 From: Matthew Warman Date: Fri, 11 Apr 2025 14:39:13 -0400 Subject: [PATCH 05/13] #122 storybook cfn template --- .aws/cfn/storybook.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.aws/cfn/storybook.yml b/.aws/cfn/storybook.yml index 3dda615..572d263 100644 --- a/.aws/cfn/storybook.yml +++ b/.aws/cfn/storybook.yml @@ -63,7 +63,7 @@ Resources: ## # CloudFront Distribution for the Storybook App - SPA errors and behaviors ## - DistributionUi: + DistributionApp: Type: AWS::CloudFront::Distribution Properties: DistributionConfig: From 479c8cf7655c0d5565b86489d18db656d92a1e58 Mon Sep 17 00:00:00 2001 From: Matthew Warman Date: Fri, 11 Apr 2025 14:44:31 -0400 Subject: [PATCH 06/13] #122 storybook bucket name --- .aws/cfn/storybook.yml | 2 +- .github/workflows/deploy-storybook-dev.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.aws/cfn/storybook.yml b/.aws/cfn/storybook.yml index 572d263..75c03f1 100644 --- a/.aws/cfn/storybook.yml +++ b/.aws/cfn/storybook.yml @@ -34,7 +34,7 @@ Resources: Type: AWS::S3::Bucket Properties: BucketName: !Sub - - 'reactstarter-ui-storybook.${HostedZone}-${AWS::Region}-${AWS::AccountId}' + - 'reactstarter-ui-sb.${HostedZone}-${AWS::Region}-${AWS::AccountId}' - HostedZone: !FindInMap [EnvironmentAttributeMap, !Ref EnvironmentCode, HostedZone] ## diff --git a/.github/workflows/deploy-storybook-dev.yml b/.github/workflows/deploy-storybook-dev.yml index 8018e99..83a73c0 100644 --- a/.github/workflows/deploy-storybook-dev.yml +++ b/.github/workflows/deploy-storybook-dev.yml @@ -12,6 +12,7 @@ concurrency: jobs: storybook: + name: Storybook uses: ./.github/workflows/deploy-storybook.yml with: aws_cfn_stack_name: ls-ui-reactstarter-storybook-resources-dev From 403734a97228b82540a91a7265adea98132c18ad Mon Sep 17 00:00:00 2001 From: Matthew Warman Date: Sat, 12 Apr 2025 06:01:04 -0400 Subject: [PATCH 07/13] #122 deploy storybook qa and prod --- .github/workflows/deploy-storybook-prod.yml | 25 +++++++++++++++++++++ .github/workflows/deploy-storybook-qa.yml | 24 ++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 .github/workflows/deploy-storybook-prod.yml create mode 100644 .github/workflows/deploy-storybook-qa.yml diff --git a/.github/workflows/deploy-storybook-prod.yml b/.github/workflows/deploy-storybook-prod.yml new file mode 100644 index 0000000..25908f5 --- /dev/null +++ b/.github/workflows/deploy-storybook-prod.yml @@ -0,0 +1,25 @@ +name: Deploy Storybook to Production + +on: + release: + types: + - published + push: + tags: + - prod + +concurrency: + group: ${{ github.workflow }} + +jobs: + storybook: + name: Storybook + uses: ./.github/workflows/deploy-storybook.yml + with: + aws_cfn_stack_name: ls-ui-reactstarter-storybook-resources-prod + aws_cfn_template: .aws/cfn/storybook.yml + aws_region: ${{ vars.AWS_REGION }} + aws_role_arn: ${{ vars.AWS_ROLE_ARN_PROD }} + env: prod + secrets: + env_file: ${{ secrets.ENV_PROD }} diff --git a/.github/workflows/deploy-storybook-qa.yml b/.github/workflows/deploy-storybook-qa.yml new file mode 100644 index 0000000..d9ada4b --- /dev/null +++ b/.github/workflows/deploy-storybook-qa.yml @@ -0,0 +1,24 @@ +name: Deploy Storybook to QA + +on: + push: + branches: + - release/* + tags: + - qa + +concurrency: + group: ${{ github.workflow }} + +jobs: + storybook: + name: Storybook + uses: ./.github/workflows/deploy-storybook.yml + with: + aws_cfn_stack_name: ls-ui-reactstarter-storybook-resources-qa + aws_cfn_template: .aws/cfn/storybook.yml + aws_region: ${{ vars.AWS_REGION }} + aws_role_arn: ${{ vars.AWS_ROLE_ARN_QA }} + env: qa + secrets: + env_file: ${{ secrets.ENV_QA }} From 292ea113acaf036fbf2b54a36d56dc8abb5a32d5 Mon Sep 17 00:00:00 2001 From: Matthew Warman Date: Sat, 12 Apr 2025 06:01:17 -0400 Subject: [PATCH 08/13] #122 validate cfn templates --- .github/workflows/ci.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a9a521..8c44ff7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,8 @@ concurrency: cancel-in-progress: true env: - AWS_CFN_TEMPLATE: .aws/cfn/app.yml + AWS_CFN_TEMPLATE_APP: .aws/cfn/app.yml + AWS_CFN_TEMPLATE_STORYBOOK: .aws/cfn/storybook.yml AWS_REGION: ${{ vars.AWS_REGION }} AWS_ROLE_ARN: ${{ vars.AWS_ROLE_ARN_DEV }} ENV_FILE: ${{ secrets.ENV_CI }} @@ -140,7 +141,12 @@ jobs: role-to-assume: ${{ env.AWS_ROLE_ARN }} aws-region: ${{ env.AWS_REGION }} - - name: Validate AWS CloudFormation Template + - name: Validate App Template run: |- aws cloudformation validate-template \ - --template-body file://${{ env.AWS_CFN_TEMPLATE }} + --template-body file://${{ env.AWS_CFN_TEMPLATE_APP }} + + - name: Validate Storybook Template + run: |- + aws cloudformation validate-template \ + --template-body file://${{ env.AWS_CFN_TEMPLATE_STORYBOOK }} From de992a8a9f97585c8d56053485520dd8ce42c89e Mon Sep 17 00:00:00 2001 From: Matthew Warman Date: Mon, 14 Apr 2025 06:26:13 -0400 Subject: [PATCH 09/13] #122 app deploy workflow --- .github/workflows/deploy-app-yml | 107 +++++++++++++++++++++++++++++++ .github/workflows/deploy-dev.yml | 83 +++--------------------- 2 files changed, 116 insertions(+), 74 deletions(-) create mode 100644 .github/workflows/deploy-app-yml diff --git a/.github/workflows/deploy-app-yml b/.github/workflows/deploy-app-yml new file mode 100644 index 0000000..c4e8c11 --- /dev/null +++ b/.github/workflows/deploy-app-yml @@ -0,0 +1,107 @@ +name: Deploy React App + +on: + workflow_call: + inputs: + app_name: + required: false + type: string + default: 'react-starter.leanstacks.net' + aws_cfn_stack_name: + required: false + type: string + default: 'ls-ui-reactstarter-resources' + aws_cfn_template: + required: false + type: string + default: '.aws/cfn/app.yml' + aws_region: + required: false + type: string + default: 'us-east-1' + aws_role_arn: + required: true + type: string + env: + required: false + type: string + default: 'dev' + secrets: + env_file: + required: true + +env: + APP_NAME: react-starter.leanstacks.net + AWS_CFN_STACK_NAME: ls-ui-reactstarter-resources-dev + AWS_CFN_TEMPLATE: .aws/cfn/app.yml + AWS_ENV_CODE: dev + AWS_REGION: ${{ vars.AWS_REGION }} + AWS_ROLE_ARN: ${{ vars.AWS_ROLE_ARN_DEV }} + ENV_FILE: ${{ secrets.ENV_DEV }} + +jobs: + deploy: + name: Deploy App + + runs-on: ubuntu-latest + timeout-minutes: 20 + + permissions: + id-token: write + contents: read + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js Environment + uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + cache: npm + + - name: Install Dependencies + run: npm ci + + - name: Create Environment Configuration + run: | + echo "${{ env.ENV_FILE }}" > .env + echo "VITE_BUILD_DATE=$(date +'%Y-%m-%d')" >> .env + echo "VITE_BUILD_TIME=$(date +'%H:%M:%S%z')" >> .env + echo "VITE_BUILD_TS=$(date +'%Y-%m-%dT%H:%M:%S%z')" >> .env + echo "VITE_BUILD_COMMIT_SHA=${{ github.sha }}" >> .env + echo "VITE_BUILD_ENV_CODE=${{ env.AWS_ENV_CODE }}" >> .env + echo "VITE_BUILD_WORKFLOW_NAME=${{ github.workflow }}" >> .env + echo "VITE_BUILD_WORKFLOW_RUN_NUMBER=${{ github.run_number }}" >> .env + echo "VITE_BUILD_WORKFLOW_RUN_ATTEMPT=${{ github.run_attempt }}" >> .env + + - name: Build + run: npm run build + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ env.AWS_ROLE_ARN }} + aws-region: ${{ env.AWS_REGION }} + + - name: Deploy AWS CloudFormation Stack + run: |- + aws cloudformation deploy \ + --stack-name ${{ env.AWS_CFN_STACK_NAME }} \ + --template-file ${{ env.AWS_CFN_TEMPLATE }} \ + --parameter-overrides EnvironmentCode=${{ env.AWS_ENV_CODE }} \ + --tags App=${{ env.APP_NAME }} Env=${{ env.AWS_ENV_CODE }} OU=leanstacks Owner='Matthew Warman' + + - name: Get CloudFormation Stack Outputs + id: cloudformation + run: |- + APP_BUCKET_NAME=$( + aws cloudformation describe-stacks \ + --stack-name ${{ env.AWS_CFN_STACK_NAME }} \ + --query "Stacks[0].Outputs[?OutputKey=='AppBucketName'].OutputValue | [0]" + ) + echo "APP_BUCKET_NAME=$APP_BUCKET_NAME" >> "$GITHUB_OUTPUT" + + - name: Deploy to AWS S3 + run: | + aws s3 sync dist s3://${{ steps.cloudformation.outputs.APP_BUCKET_NAME }} --delete diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml index 4059b30..cb397ac 100644 --- a/.github/workflows/deploy-dev.yml +++ b/.github/workflows/deploy-dev.yml @@ -1,4 +1,4 @@ -name: Deploy to Development +name: Deploy App to Development on: push: @@ -10,78 +10,13 @@ on: concurrency: group: ${{ github.workflow }} -env: - APP_NAME: react-starter.leanstacks.net - AWS_CFN_STACK_NAME: ls-ui-reactstarter-resources-dev - AWS_CFN_TEMPLATE: .aws/cfn/app.yml - AWS_ENV_CODE: dev - AWS_REGION: ${{ vars.AWS_REGION }} - AWS_ROLE_ARN: ${{ vars.AWS_ROLE_ARN_DEV }} - ENV_FILE: ${{ secrets.ENV_DEV }} - jobs: deploy: - name: Deploy - - runs-on: ubuntu-latest - timeout-minutes: 20 - - permissions: - id-token: write - contents: read - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Node.js Environment - uses: actions/setup-node@v4 - with: - node-version-file: '.nvmrc' - cache: npm - - - name: Install Dependencies - run: npm ci - - - name: Create Environment Configuration - run: | - echo "${{ env.ENV_FILE }}" > .env - echo "VITE_BUILD_DATE=$(date +'%Y-%m-%d')" >> .env - echo "VITE_BUILD_TIME=$(date +'%H:%M:%S%z')" >> .env - echo "VITE_BUILD_TS=$(date +'%Y-%m-%dT%H:%M:%S%z')" >> .env - echo "VITE_BUILD_COMMIT_SHA=${{ github.sha }}" >> .env - echo "VITE_BUILD_ENV_CODE=${{ env.AWS_ENV_CODE }}" >> .env - echo "VITE_BUILD_WORKFLOW_NAME=${{ github.workflow }}" >> .env - echo "VITE_BUILD_WORKFLOW_RUN_NUMBER=${{ github.run_number }}" >> .env - echo "VITE_BUILD_WORKFLOW_RUN_ATTEMPT=${{ github.run_attempt }}" >> .env - - - name: Build - run: npm run build - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: ${{ env.AWS_ROLE_ARN }} - aws-region: ${{ env.AWS_REGION }} - - - name: Deploy AWS CloudFormation Stack - run: |- - aws cloudformation deploy \ - --stack-name ${{ env.AWS_CFN_STACK_NAME }} \ - --template-file ${{ env.AWS_CFN_TEMPLATE }} \ - --parameter-overrides EnvironmentCode=${{ env.AWS_ENV_CODE }} \ - --tags App=${{ env.APP_NAME }} Env=${{ env.AWS_ENV_CODE }} OU=leanstacks Owner='Matthew Warman' - - - name: Get CloudFormation Stack Outputs - id: cloudformation - run: |- - APP_BUCKET_NAME=$( - aws cloudformation describe-stacks \ - --stack-name ${{ env.AWS_CFN_STACK_NAME }} \ - --query "Stacks[0].Outputs[?OutputKey=='AppBucketName'].OutputValue | [0]" - ) - echo "APP_BUCKET_NAME=$APP_BUCKET_NAME" >> "$GITHUB_OUTPUT" - - - name: Deploy to AWS S3 - run: | - aws s3 sync dist s3://${{ steps.cloudformation.outputs.APP_BUCKET_NAME }} --delete + name: Deploy DV + uses: ./.github/workflows/deploy-storybook.yml + with: + aws_cfn_stack_name: ls-ui-reactstarter-storybook-resources-dev + aws_role_arn: ${{ vars.AWS_ROLE_ARN_DEV }} + env: dev + secrets: + env_file: ${{ secrets.ENV_DEV }} From fbadeb2c624dde5d9e79a4d339b4ca26675719a1 Mon Sep 17 00:00:00 2001 From: Matthew Warman Date: Mon, 14 Apr 2025 06:40:39 -0400 Subject: [PATCH 10/13] #122 app deploy workflow --- .github/workflows/deploy-app-yml | 2 +- .github/workflows/deploy-dev.yml | 2 +- .github/workflows/deploy-prod.yml | 83 ++++--------------------------- .github/workflows/deploy-qa.yml | 83 ++++--------------------------- 4 files changed, 20 insertions(+), 150 deletions(-) diff --git a/.github/workflows/deploy-app-yml b/.github/workflows/deploy-app-yml index c4e8c11..2b541d2 100644 --- a/.github/workflows/deploy-app-yml +++ b/.github/workflows/deploy-app-yml @@ -41,7 +41,7 @@ env: jobs: deploy: - name: Deploy App + name: Deploy runs-on: ubuntu-latest timeout-minutes: 20 diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml index cb397ac..940eea3 100644 --- a/.github/workflows/deploy-dev.yml +++ b/.github/workflows/deploy-dev.yml @@ -12,7 +12,7 @@ concurrency: jobs: deploy: - name: Deploy DV + name: Deploy App DV uses: ./.github/workflows/deploy-storybook.yml with: aws_cfn_stack_name: ls-ui-reactstarter-storybook-resources-dev diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index f1a55e3..7c58b56 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -1,4 +1,4 @@ -name: Deploy to Production +name: Deploy App to Production on: release: @@ -11,78 +11,13 @@ on: concurrency: group: ${{ github.workflow }} -env: - APP_NAME: react-starter.leanstacks.net - AWS_CFN_STACK_NAME: ls-ui-reactstarter-resources-prod - AWS_CFN_TEMPLATE: .aws/cfn/app.yml - AWS_ENV_CODE: prod - AWS_REGION: ${{ vars.AWS_REGION }} - AWS_ROLE_ARN: ${{ vars.AWS_ROLE_ARN_PROD }} - ENV_FILE: ${{ secrets.ENV_PROD }} - jobs: deploy: - name: Deploy - - runs-on: ubuntu-latest - timeout-minutes: 20 - - permissions: - id-token: write - contents: read - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Node.js Environment - uses: actions/setup-node@v4 - with: - node-version-file: '.nvmrc' - cache: npm - - - name: Install Dependencies - run: npm ci - - - name: Create Environment Configuration - run: | - echo "${{ env.ENV_FILE }}" > .env - echo "VITE_BUILD_DATE=$(date +'%Y-%m-%d')" >> .env - echo "VITE_BUILD_TIME=$(date +'%H:%M:%S%z')" >> .env - echo "VITE_BUILD_TS=$(date +'%Y-%m-%dT%H:%M:%S%z')" >> .env - echo "VITE_BUILD_COMMIT_SHA=${{ github.sha }}" >> .env - echo "VITE_BUILD_ENV_CODE=${{ env.AWS_ENV_CODE }}" >> .env - echo "VITE_BUILD_WORKFLOW_NAME=${{ github.workflow }}" >> .env - echo "VITE_BUILD_WORKFLOW_RUN_NUMBER=${{ github.run_number }}" >> .env - echo "VITE_BUILD_WORKFLOW_RUN_ATTEMPT=${{ github.run_attempt }}" >> .env - - - name: Build - run: npm run build - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: ${{ env.AWS_ROLE_ARN }} - aws-region: ${{ env.AWS_REGION }} - - - name: Deploy AWS CloudFormation Stack - run: |- - aws cloudformation deploy \ - --stack-name ${{ env.AWS_CFN_STACK_NAME }} \ - --template-file ${{ env.AWS_CFN_TEMPLATE }} \ - --parameter-overrides EnvironmentCode=${{ env.AWS_ENV_CODE }} \ - --tags App=${{ env.APP_NAME }} Env=${{ env.AWS_ENV_CODE }} OU=leanstacks Owner='Matthew Warman' - - - name: Get CloudFormation Stack Outputs - id: cloudformation - run: |- - APP_BUCKET_NAME=$( - aws cloudformation describe-stacks \ - --stack-name ${{ env.AWS_CFN_STACK_NAME }} \ - --query "Stacks[0].Outputs[?OutputKey=='AppBucketName'].OutputValue | [0]" - ) - echo "APP_BUCKET_NAME=$APP_BUCKET_NAME" >> "$GITHUB_OUTPUT" - - - name: Deploy to AWS S3 - run: | - aws s3 sync dist s3://${{ steps.cloudformation.outputs.APP_BUCKET_NAME }} --delete + name: Deploy App PR + uses: ./.github/workflows/deploy-storybook.yml + with: + aws_cfn_stack_name: ls-ui-reactstarter-storybook-resources-prod + aws_role_arn: ${{ vars.AWS_ROLE_ARN_PROD }} + env: prod + secrets: + env_file: ${{ secrets.ENV_PROD }} diff --git a/.github/workflows/deploy-qa.yml b/.github/workflows/deploy-qa.yml index f9ba012..e055a40 100644 --- a/.github/workflows/deploy-qa.yml +++ b/.github/workflows/deploy-qa.yml @@ -1,4 +1,4 @@ -name: Deploy to QA +name: Deploy App to QA on: push: @@ -10,78 +10,13 @@ on: concurrency: group: ${{ github.workflow }} -env: - APP_NAME: react-starter.leanstacks.net - AWS_CFN_STACK_NAME: ls-ui-reactstarter-resources-qa - AWS_CFN_TEMPLATE: .aws/cfn/app.yml - AWS_ENV_CODE: qa - AWS_REGION: ${{ vars.AWS_REGION }} - AWS_ROLE_ARN: ${{ vars.AWS_ROLE_ARN_QA }} - ENV_FILE: ${{ secrets.ENV_QA }} - jobs: deploy: - name: Deploy - - runs-on: ubuntu-latest - timeout-minutes: 20 - - permissions: - id-token: write - contents: read - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Node.js Environment - uses: actions/setup-node@v4 - with: - node-version-file: '.nvmrc' - cache: npm - - - name: Install Dependencies - run: npm ci - - - name: Create Environment Configuration - run: | - echo "${{ env.ENV_FILE }}" > .env - echo "VITE_BUILD_DATE=$(date +'%Y-%m-%d')" >> .env - echo "VITE_BUILD_TIME=$(date +'%H:%M:%S%z')" >> .env - echo "VITE_BUILD_TS=$(date +'%Y-%m-%dT%H:%M:%S%z')" >> .env - echo "VITE_BUILD_COMMIT_SHA=${{ github.sha }}" >> .env - echo "VITE_BUILD_ENV_CODE=${{ env.AWS_ENV_CODE }}" >> .env - echo "VITE_BUILD_WORKFLOW_NAME=${{ github.workflow }}" >> .env - echo "VITE_BUILD_WORKFLOW_RUN_NUMBER=${{ github.run_number }}" >> .env - echo "VITE_BUILD_WORKFLOW_RUN_ATTEMPT=${{ github.run_attempt }}" >> .env - - - name: Build - run: npm run build - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: ${{ env.AWS_ROLE_ARN }} - aws-region: ${{ env.AWS_REGION }} - - - name: Deploy AWS CloudFormation Stack - run: |- - aws cloudformation deploy \ - --stack-name ${{ env.AWS_CFN_STACK_NAME }} \ - --template-file ${{ env.AWS_CFN_TEMPLATE }} \ - --parameter-overrides EnvironmentCode=${{ env.AWS_ENV_CODE }} \ - --tags App=${{ env.APP_NAME }} Env=${{ env.AWS_ENV_CODE }} OU=leanstacks Owner='Matthew Warman' - - - name: Get CloudFormation Stack Outputs - id: cloudformation - run: |- - APP_BUCKET_NAME=$( - aws cloudformation describe-stacks \ - --stack-name ${{ env.AWS_CFN_STACK_NAME }} \ - --query "Stacks[0].Outputs[?OutputKey=='AppBucketName'].OutputValue | [0]" - ) - echo "APP_BUCKET_NAME=$APP_BUCKET_NAME" >> "$GITHUB_OUTPUT" - - - name: Deploy to AWS S3 - run: | - aws s3 sync dist s3://${{ steps.cloudformation.outputs.APP_BUCKET_NAME }} --delete + name: Deploy App QA + uses: ./.github/workflows/deploy-storybook.yml + with: + aws_cfn_stack_name: ls-ui-reactstarter-storybook-resources-qa + aws_role_arn: ${{ vars.AWS_ROLE_ARN_QA }} + env: qa + secrets: + env_file: ${{ secrets.ENV_QA }} From 7879a9cabc2b1c5c430c9d0bd3302259bc1977db Mon Sep 17 00:00:00 2001 From: Matthew Warman Date: Mon, 14 Apr 2025 06:44:29 -0400 Subject: [PATCH 11/13] #122 sb deploy workflows --- .github/workflows/deploy-storybook-dev.yml | 6 ++---- .github/workflows/deploy-storybook-prod.yml | 6 ++---- .github/workflows/deploy-storybook-qa.yml | 6 ++---- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/.github/workflows/deploy-storybook-dev.yml b/.github/workflows/deploy-storybook-dev.yml index 83a73c0..1d2631c 100644 --- a/.github/workflows/deploy-storybook-dev.yml +++ b/.github/workflows/deploy-storybook-dev.yml @@ -11,13 +11,11 @@ concurrency: group: ${{ github.workflow }} jobs: - storybook: - name: Storybook + deploy: + name: Deploy SB DV uses: ./.github/workflows/deploy-storybook.yml with: aws_cfn_stack_name: ls-ui-reactstarter-storybook-resources-dev - aws_cfn_template: .aws/cfn/storybook.yml - aws_region: ${{ vars.AWS_REGION }} aws_role_arn: ${{ vars.AWS_ROLE_ARN_DEV }} env: dev secrets: diff --git a/.github/workflows/deploy-storybook-prod.yml b/.github/workflows/deploy-storybook-prod.yml index 25908f5..9e3606b 100644 --- a/.github/workflows/deploy-storybook-prod.yml +++ b/.github/workflows/deploy-storybook-prod.yml @@ -12,13 +12,11 @@ concurrency: group: ${{ github.workflow }} jobs: - storybook: - name: Storybook + deploy: + name: Deploy SB PR uses: ./.github/workflows/deploy-storybook.yml with: aws_cfn_stack_name: ls-ui-reactstarter-storybook-resources-prod - aws_cfn_template: .aws/cfn/storybook.yml - aws_region: ${{ vars.AWS_REGION }} aws_role_arn: ${{ vars.AWS_ROLE_ARN_PROD }} env: prod secrets: diff --git a/.github/workflows/deploy-storybook-qa.yml b/.github/workflows/deploy-storybook-qa.yml index d9ada4b..6e07893 100644 --- a/.github/workflows/deploy-storybook-qa.yml +++ b/.github/workflows/deploy-storybook-qa.yml @@ -11,13 +11,11 @@ concurrency: group: ${{ github.workflow }} jobs: - storybook: - name: Storybook + deploy: + name: Deploy SB QA uses: ./.github/workflows/deploy-storybook.yml with: aws_cfn_stack_name: ls-ui-reactstarter-storybook-resources-qa - aws_cfn_template: .aws/cfn/storybook.yml - aws_region: ${{ vars.AWS_REGION }} aws_role_arn: ${{ vars.AWS_ROLE_ARN_QA }} env: qa secrets: From d639a87049f8ff3efae2da0db6e0b69cf67c569f Mon Sep 17 00:00:00 2001 From: Matthew Warman Date: Mon, 14 Apr 2025 07:20:29 -0400 Subject: [PATCH 12/13] #122 pr fixes --- .../{deploy-app-yml => deploy-app.yml} | 27 +++++++------------ .github/workflows/deploy-storybook.yml | 9 ++++--- 2 files changed, 14 insertions(+), 22 deletions(-) rename .github/workflows/{deploy-app-yml => deploy-app.yml} (74%) diff --git a/.github/workflows/deploy-app-yml b/.github/workflows/deploy-app.yml similarity index 74% rename from .github/workflows/deploy-app-yml rename to .github/workflows/deploy-app.yml index 2b541d2..f1e4507 100644 --- a/.github/workflows/deploy-app-yml +++ b/.github/workflows/deploy-app.yml @@ -30,15 +30,6 @@ on: env_file: required: true -env: - APP_NAME: react-starter.leanstacks.net - AWS_CFN_STACK_NAME: ls-ui-reactstarter-resources-dev - AWS_CFN_TEMPLATE: .aws/cfn/app.yml - AWS_ENV_CODE: dev - AWS_REGION: ${{ vars.AWS_REGION }} - AWS_ROLE_ARN: ${{ vars.AWS_ROLE_ARN_DEV }} - ENV_FILE: ${{ secrets.ENV_DEV }} - jobs: deploy: name: Deploy @@ -65,12 +56,12 @@ jobs: - name: Create Environment Configuration run: | - echo "${{ env.ENV_FILE }}" > .env + echo "${{ secrets.ENV_FILE }}" > .env echo "VITE_BUILD_DATE=$(date +'%Y-%m-%d')" >> .env echo "VITE_BUILD_TIME=$(date +'%H:%M:%S%z')" >> .env echo "VITE_BUILD_TS=$(date +'%Y-%m-%dT%H:%M:%S%z')" >> .env echo "VITE_BUILD_COMMIT_SHA=${{ github.sha }}" >> .env - echo "VITE_BUILD_ENV_CODE=${{ env.AWS_ENV_CODE }}" >> .env + echo "VITE_BUILD_ENV_CODE=${{ inputs.env }}" >> .env echo "VITE_BUILD_WORKFLOW_NAME=${{ github.workflow }}" >> .env echo "VITE_BUILD_WORKFLOW_RUN_NUMBER=${{ github.run_number }}" >> .env echo "VITE_BUILD_WORKFLOW_RUN_ATTEMPT=${{ github.run_attempt }}" >> .env @@ -81,23 +72,23 @@ jobs: - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 with: - role-to-assume: ${{ env.AWS_ROLE_ARN }} - aws-region: ${{ env.AWS_REGION }} + role-to-assume: ${{ inputs.aws_role_arn }} + aws-region: ${{ inputs.aws_region }} - name: Deploy AWS CloudFormation Stack run: |- aws cloudformation deploy \ - --stack-name ${{ env.AWS_CFN_STACK_NAME }} \ - --template-file ${{ env.AWS_CFN_TEMPLATE }} \ - --parameter-overrides EnvironmentCode=${{ env.AWS_ENV_CODE }} \ - --tags App=${{ env.APP_NAME }} Env=${{ env.AWS_ENV_CODE }} OU=leanstacks Owner='Matthew Warman' + --stack-name ${{ inputs.aws_cfn_stack_name }} \ + --template-file ${{ inputs.aws_cfn_template }} \ + --parameter-overrides EnvironmentCode=${{ inputs.env }} \ + --tags App=${{ inputs.app_name }} Env=${{ inputs.env }} OU=leanstacks Owner='Matthew Warman' - name: Get CloudFormation Stack Outputs id: cloudformation run: |- APP_BUCKET_NAME=$( aws cloudformation describe-stacks \ - --stack-name ${{ env.AWS_CFN_STACK_NAME }} \ + --stack-name ${{ inputs.aws_cfn_stack_name }} \ --query "Stacks[0].Outputs[?OutputKey=='AppBucketName'].OutputValue | [0]" ) echo "APP_BUCKET_NAME=$APP_BUCKET_NAME" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/deploy-storybook.yml b/.github/workflows/deploy-storybook.yml index 7e4db82..27757d3 100644 --- a/.github/workflows/deploy-storybook.yml +++ b/.github/workflows/deploy-storybook.yml @@ -3,6 +3,10 @@ name: Deploy Storybook on: workflow_call: inputs: + app_name: + required: false + type: string + default: 'react-starter-storybook.leanstacks.net' aws_region: required: false type: string @@ -25,9 +29,6 @@ on: env_file: required: true -env: - APP_NAME: react-starter-storybook.leanstacks.net - jobs: deploy: name: Deploy @@ -79,7 +80,7 @@ jobs: --stack-name ${{ inputs.aws_cfn_stack_name }} \ --template-file ${{ inputs.aws_cfn_template }} \ --parameter-overrides EnvironmentCode=${{ inputs.env }} \ - --tags App=${{ env.APP_NAME }} Env=${{ inputs.env }} OU=leanstacks Owner='Matthew Warman' + --tags App=${{ inputs.app_name }} Env=${{ inputs.env }} OU=leanstacks Owner='Matthew Warman' - name: Get CloudFormation Stack Outputs id: cloudformation From bd03010c07958c8e221d4b1e1d4d5527757bfae1 Mon Sep 17 00:00:00 2001 From: Matthew Warman Date: Mon, 14 Apr 2025 07:25:18 -0400 Subject: [PATCH 13/13] #122 pr fixes --- .github/workflows/{deploy-dev.yml => deploy-app-dev.yml} | 4 ++-- .github/workflows/{deploy-prod.yml => deploy-app-prod.yml} | 4 ++-- .github/workflows/{deploy-qa.yml => deploy-app-qa.yml} | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) rename .github/workflows/{deploy-dev.yml => deploy-app-dev.yml} (71%) rename .github/workflows/{deploy-prod.yml => deploy-app-prod.yml} (72%) rename .github/workflows/{deploy-qa.yml => deploy-app-qa.yml} (71%) diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-app-dev.yml similarity index 71% rename from .github/workflows/deploy-dev.yml rename to .github/workflows/deploy-app-dev.yml index 940eea3..7b69243 100644 --- a/.github/workflows/deploy-dev.yml +++ b/.github/workflows/deploy-app-dev.yml @@ -13,9 +13,9 @@ concurrency: jobs: deploy: name: Deploy App DV - uses: ./.github/workflows/deploy-storybook.yml + uses: ./.github/workflows/deploy-app.yml with: - aws_cfn_stack_name: ls-ui-reactstarter-storybook-resources-dev + aws_cfn_stack_name: ls-ui-reactstarter-resources-dev aws_role_arn: ${{ vars.AWS_ROLE_ARN_DEV }} env: dev secrets: diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-app-prod.yml similarity index 72% rename from .github/workflows/deploy-prod.yml rename to .github/workflows/deploy-app-prod.yml index 7c58b56..c063459 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-app-prod.yml @@ -14,9 +14,9 @@ concurrency: jobs: deploy: name: Deploy App PR - uses: ./.github/workflows/deploy-storybook.yml + uses: ./.github/workflows/deploy-app.yml with: - aws_cfn_stack_name: ls-ui-reactstarter-storybook-resources-prod + aws_cfn_stack_name: ls-ui-reactstarter-resources-prod aws_role_arn: ${{ vars.AWS_ROLE_ARN_PROD }} env: prod secrets: diff --git a/.github/workflows/deploy-qa.yml b/.github/workflows/deploy-app-qa.yml similarity index 71% rename from .github/workflows/deploy-qa.yml rename to .github/workflows/deploy-app-qa.yml index e055a40..fdad2f8 100644 --- a/.github/workflows/deploy-qa.yml +++ b/.github/workflows/deploy-app-qa.yml @@ -13,9 +13,9 @@ concurrency: jobs: deploy: name: Deploy App QA - uses: ./.github/workflows/deploy-storybook.yml + uses: ./.github/workflows/deploy-app.yml with: - aws_cfn_stack_name: ls-ui-reactstarter-storybook-resources-qa + aws_cfn_stack_name: ls-ui-reactstarter-resources-qa aws_role_arn: ${{ vars.AWS_ROLE_ARN_QA }} env: qa secrets: