Skip to content
This repository was archived by the owner on Mar 27, 2025. It is now read-only.

Commit 33e5517

Browse files
committed
Refactor deployment workflow to streamline S3 and CloudFront stack deployments and improve environment name handling
1 parent db55e99 commit 33e5517

File tree

1 file changed

+53
-23
lines changed

1 file changed

+53
-23
lines changed

.github/workflows/deploy.yml

Lines changed: 53 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,8 @@ jobs:
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
@@ -61,7 +59,6 @@ jobs:
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

Comments
 (0)