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

Commit 50b3583

Browse files
committed
Refactor GitHub Actions workflow to deploy individual CDK stacks for certificate, DynamoDB, HTTP, auth, S3, restaurant, and order
1 parent 2dfa43b commit 50b3583

File tree

1 file changed

+253
-2
lines changed

1 file changed

+253
-2
lines changed

.github/workflows/deploy.yml

Lines changed: 253 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,259 @@ on:
55
branches: [main]
66

77
jobs:
8-
deploy_cdk:
8+
deploy_certificate_stack:
99
runs-on: ubuntu-latest
10+
steps:
11+
- name: Checkout
12+
uses: actions/checkout@v4
13+
14+
- name: Setup pnpm
15+
uses: pnpm/action-setup@v4
16+
with:
17+
version: 9
18+
run_install: false
19+
20+
- name: Install AWS CDK
21+
run: npm install -g aws-cdk
22+
23+
- name: Install Root Dependencies
24+
run: pnpm install
25+
26+
- name: Configure AWS Credentials
27+
uses: aws-actions/configure-aws-credentials@v4
28+
with:
29+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
30+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
31+
aws-region: ap-south-1
32+
33+
- name: Determine Environment Name
34+
run: |
35+
if [[ $GITHUB_REF == refs/heads/main ]]; then
36+
ENV_NAME="prod"
37+
elif [[ $GITHUB_REF == refs/heads/stage ]]; then
38+
ENV_NAME="stg"
39+
else
40+
ENV_NAME="dev"
41+
fi
42+
echo "ENV_NAME=$ENV_NAME" >> $GITHUB_ENV
43+
44+
- name: Deploy CDK
45+
run: cdk deploy CertificateStack -c env=${{ env.ENV_NAME }} --require-approval never
46+
47+
deploy_dynamo_stack:
48+
runs-on: ubuntu-latest
49+
steps:
50+
- name: Checkout
51+
uses: actions/checkout@v4
52+
53+
- name: Setup pnpm
54+
uses: pnpm/action-setup@v4
55+
with:
56+
version: 9
57+
run_install: false
58+
59+
- name: Install AWS CDK
60+
run: npm install -g aws-cdk
61+
62+
- name: Install Root Dependencies
63+
run: pnpm install
64+
65+
- name: Configure AWS Credentials
66+
uses: aws-actions/configure-aws-credentials@v4
67+
with:
68+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
69+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
70+
aws-region: ap-south-1
71+
72+
- name: Determine Environment Name
73+
run: |
74+
if [[ $GITHUB_REF == refs/heads/main ]]; then
75+
ENV_NAME="prod"
76+
elif [[ $GITHUB_REF == refs/heads/stage ]]; then
77+
ENV_NAME="stg"
78+
else
79+
ENV_NAME="dev"
80+
fi
81+
echo "ENV_NAME=$ENV_NAME" >> $GITHUB_ENV
82+
83+
- name: Deploy CDK
84+
run: cdk deploy DynamoStack -c env=${{ env.ENV_NAME }} --require-approval never
85+
86+
deploy_http_stack:
87+
runs-on: ubuntu-latest
88+
needs: [deploy_certificate_stack]
89+
steps:
90+
- name: Checkout
91+
uses: actions/checkout@v4
92+
93+
- name: Setup pnpm
94+
uses: pnpm/action-setup@v4
95+
with:
96+
version: 9
97+
run_install: false
98+
99+
- name: Install AWS CDK
100+
run: npm install -g aws-cdk
101+
102+
- name: Install Root Dependencies
103+
run: pnpm install
104+
105+
- name: Configure AWS Credentials
106+
uses: aws-actions/configure-aws-credentials@v4
107+
with:
108+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
109+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
110+
aws-region: ap-south-1
111+
112+
- name: Determine Environment Name
113+
run: |
114+
if [[ $GITHUB_REF == refs/heads/main ]]; then
115+
ENV_NAME="prod"
116+
elif [[ $GITHUB_REF == refs/heads/stage ]]; then
117+
ENV_NAME="stg"
118+
else
119+
ENV_NAME="dev"
120+
fi
121+
echo "ENV_NAME=$ENV_NAME" >> $GITHUB_ENV
122+
123+
- name: Deploy CDK
124+
run: cdk deploy HttpStack -c env=${{ env.ENV_NAME }} --require-approval never
125+
126+
deploy_auth_stack:
127+
runs-on: ubuntu-latest
128+
needs: [deploy_http_stack]
129+
steps:
130+
- name: Checkout
131+
uses: actions/checkout@v4
132+
133+
- name: Setup pnpm
134+
uses: pnpm/action-setup@v4
135+
with:
136+
version: 9
137+
run_install: false
138+
139+
- name: Install AWS CDK
140+
run: npm install -g aws-cdk
141+
142+
- name: Install Root Dependencies
143+
run: pnpm install
144+
145+
- name: Install src Dependencies
146+
run: pnpm install
147+
working-directory: src
148+
149+
- name: Configure AWS Credentials
150+
uses: aws-actions/configure-aws-credentials@v4
151+
with:
152+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
153+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
154+
aws-region: ap-south-1
155+
156+
- name: Determine Environment Name
157+
run: |
158+
if [[ $GITHUB_REF == refs/heads/main ]]; then
159+
ENV_NAME="prod"
160+
elif [[ $GITHUB_REF == refs/heads/stage ]]; then
161+
ENV_NAME="stg"
162+
else
163+
ENV_NAME="dev"
164+
fi
165+
echo "ENV_NAME=$ENV_NAME" >> $GITHUB_ENV
166+
167+
- name: Deploy CDK
168+
run: cdk deploy AuthStack -c env=${{ env.ENV_NAME }} --require-approval never
169+
170+
deploy_s3_stack:
171+
runs-on: ubuntu-latest
172+
needs: [deploy_auth_stack]
173+
steps:
174+
- name: Checkout
175+
uses: actions/checkout@v4
176+
177+
- name: Setup pnpm
178+
uses: pnpm/action-setup@v4
179+
with:
180+
version: 9
181+
run_install: false
182+
183+
- name: Install AWS CDK
184+
run: npm install -g aws-cdk
185+
186+
- name: Install Root Dependencies
187+
run: pnpm install
188+
189+
- name: Install src Dependencies
190+
run: pnpm install
191+
working-directory: src
192+
193+
- name: Configure AWS Credentials
194+
uses: aws-actions/configure-aws-credentials@v4
195+
with:
196+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
197+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
198+
aws-region: ap-south-1
199+
200+
- name: Determine Environment Name
201+
run: |
202+
if [[ $GITHUB_REF == refs/heads/main ]]; then
203+
ENV_NAME="prod"
204+
elif [[ $GITHUB_REF == refs/heads/stage ]]; then
205+
ENV_NAME="stg"
206+
else
207+
ENV_NAME="dev"
208+
fi
209+
echo "ENV_NAME=$ENV_NAME" >> $GITHUB_ENV
210+
211+
- name: Deploy CDK
212+
run: cdk deploy S3Stack -c env=${{ env.ENV_NAME }} --require-approval never
213+
214+
deploy_restaurant_stack:
215+
runs-on: ubuntu-latest
216+
needs: [deploy_auth_stack]
217+
steps:
218+
- name: Checkout
219+
uses: actions/checkout@v4
220+
221+
- name: Setup pnpm
222+
uses: pnpm/action-setup@v4
223+
with:
224+
version: 9
225+
run_install: false
226+
227+
- name: Install AWS CDK
228+
run: npm install -g aws-cdk
229+
230+
- name: Install Root Dependencies
231+
run: pnpm install
232+
233+
- name: Install src Dependencies
234+
run: pnpm install
235+
working-directory: src
236+
237+
- name: Configure AWS Credentials
238+
uses: aws-actions/configure-aws-credentials@v4
239+
with:
240+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
241+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
242+
aws-region: ap-south-1
243+
244+
- name: Determine Environment Name
245+
run: |
246+
if [[ $GITHUB_REF == refs/heads/main ]]; then
247+
ENV_NAME="prod"
248+
elif [[ $GITHUB_REF == refs/heads/stage ]]; then
249+
ENV_NAME="stg"
250+
else
251+
ENV_NAME="dev"
252+
fi
253+
echo "ENV_NAME=$ENV_NAME" >> $GITHUB_ENV
254+
255+
- name: Deploy CDK
256+
run: cdk deploy RestaurantStack -c env=${{ env.ENV_NAME }} --require-approval never
257+
258+
deploy_order_stack:
259+
runs-on: ubuntu-latest
260+
needs: [deploy_auth_stack]
10261
steps:
11262
- name: Checkout
12263
uses: actions/checkout@v4
@@ -46,4 +297,4 @@ jobs:
46297
echo "ENV_NAME=$ENV_NAME" >> $GITHUB_ENV
47298
48299
- name: Deploy CDK
49-
run: cdk deploy --all -c env=${{ env.ENV_NAME }} --require-approval never
300+
run: cdk deploy OrderStack -c env=${{ env.ENV_NAME }} --require-approval never

0 commit comments

Comments
 (0)