3232 name : build-artifact
3333 path : dist
3434
35- setup :
35+ deploy_s3 :
3636 runs-on : ubuntu-latest
37- outputs :
38- env_name : ${{ steps.set_env.outputs.env_name }}
3937 steps :
4038 - name : Checkout
4139 uses : actions/checkout@v4
6159 run : npm install -g aws-cdk
6260
6361 - name : Determine Environment Name
64- id : set_env
6562 run : |
6663 if [[ $GITHUB_REF == refs/heads/main ]]; then
6764 ENV_NAME="production"
@@ -70,32 +67,41 @@ jobs:
7067 else
7168 ENV_NAME="dev"
7269 fi
73- echo "env_name =$ENV_NAME" >> $GITHUB_OUTPUT
70+ echo "ENV_NAME =$ENV_NAME" >> $GITHUB_ENV
7471
75- deploy_s3 :
72+ - name : Deploy S3 Stack
73+ working-directory : infra
74+ run : cdk deploy BeejhoFrontendS3Stack-${{ env.ENV_NAME }} --require-approval never
75+
76+ deploy_certificate :
7677 runs-on : ubuntu-latest
77- needs : setup
7878 steps :
7979 - name : Checkout
8080 uses : actions/checkout@v4
8181
82- - name : Configure AWS Credentials
83- uses : aws-actions/configure-aws-credentials @v4
82+ - name : Setup pnpm
83+ uses : pnpm/action-setup @v4
8484 with :
85- aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
86- aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
87- aws-region : ap-south-1
85+ version : 9
86+ run_install : false
8887
89- - name : Deploy S3 Stack
88+ - name : Install CDK Dependencies
9089 working-directory : infra
91- run : cdk deploy BeejhoFrontendS3Stack-${{ needs.setup.outputs.env_name }} --require-approval never
90+ run : pnpm install
9291
93- deploy_certificate :
94- runs-on : ubuntu-latest
95- needs : setup
96- steps :
97- - name : Checkout
98- uses : actions/checkout@v4
92+ - name : Install AWS CDK
93+ run : npm install -g aws-cdk
94+
95+ - name : Determine Environment Name
96+ run : |
97+ if [[ $GITHUB_REF == refs/heads/main ]]; then
98+ ENV_NAME="production"
99+ elif [[ $GITHUB_REF == refs/heads/stage ]]; then
100+ ENV_NAME="stg"
101+ else
102+ ENV_NAME="dev"
103+ fi
104+ echo "ENV_NAME=$ENV_NAME" >> $GITHUB_ENV
99105
100106 - name : Configure AWS Credentials
101107 uses : aws-actions/configure-aws-credentials@v4
@@ -108,23 +114,47 @@ jobs:
108114 working-directory : infra
109115 run : cdk deploy BeejhoFrontendCertificateStack --require-approval never
110116
111- deploy_infra :
117+ deploy_cloudfront :
112118 runs-on : ubuntu-latest
113119 needs : [deploy_s3, deploy_certificate] # Ensures infra deploys only after S3 and Certificate are done
114120 steps :
115121 - name : Checkout
116122 uses : actions/checkout@v4
117123
124+ - name : Setup pnpm
125+ uses : pnpm/action-setup@v4
126+ with :
127+ version : 9
128+ run_install : false
129+
130+ - name : Install CDK Dependencies
131+ working-directory : infra
132+ run : pnpm install
133+
118134 - name : Configure AWS Credentials
119135 uses : aws-actions/configure-aws-credentials@v4
120136 with :
121137 aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
122138 aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
123139 aws-region : ap-south-1
124140
125- - name : Deploy Infra Stack
141+ - name : Install AWS CDK
142+ run : npm install -g aws-cdk
143+
144+ - name : Determine Environment Name
145+ run : |
146+ if [[ $GITHUB_REF == refs/heads/main ]]; then
147+ ENV_NAME="production"
148+ elif [[ $GITHUB_REF == refs/heads/stage ]]; then
149+ ENV_NAME="stg"
150+ else
151+ ENV_NAME="dev"
152+ fi
153+ echo "ENV_NAME=$ENV_NAME" >> $GITHUB_ENV
154+
155+ - name : Deploy Cloudfront Stack
126156 working-directory : infra
127- run : cdk deploy BeejhoFrontendStack -${{ needs.setup.outputs.env_name }} --require-approval never
157+ run : cdk deploy BeejhoFrontendCloudfrontStack -${{ env.ENV_NAME }} --require-approval never
128158
129159 sync_to_s3 :
130160 runs-on : ubuntu-latest
0 commit comments