Skip to content

Commit 24c7aa4

Browse files
authored
chore(ci): add workflow to balance layers per region (#5752)
* feat(region): Region Build * update role name * updates header for workflow
1 parent 878c66e commit 24c7aa4

File tree

1 file changed

+109
-0
lines changed

1 file changed

+109
-0
lines changed
+109
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# bootstraps new regions
2+
#
3+
# PURPOSE
4+
# Ensures new regions are deployable in future releases
5+
#
6+
# JOB 1 PROCESS
7+
#
8+
# 1. Installs CDK
9+
# 2. Bootstraps region
10+
#
11+
# JOB 2 PROCESS
12+
# 1. Sets up Go
13+
# 2. Installs the balance script
14+
# 3. Runs balance script to copy layers between aws regions
15+
16+
on:
17+
workflow_dispatch:
18+
inputs:
19+
environment:
20+
type: choice
21+
options:
22+
- beta
23+
- prod
24+
description: Deployment environment
25+
region:
26+
type: string
27+
required: true
28+
description: AWS region to bootstrap (i.e. eu-west-1)
29+
30+
name: Region Bootstrap
31+
run-name: Region Bootstrap ${{ inputs.region }}
32+
33+
permissions:
34+
contents: read
35+
36+
jobs:
37+
cdk:
38+
name: Install CDK
39+
runs-on: ubuntu-latest
40+
permissions:
41+
contents: write
42+
id-token: write
43+
environment: layer-${{ inputs.environment }}
44+
steps:
45+
- id: credentials
46+
name: AWS Credentials
47+
uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502
48+
with:
49+
aws-region: ${{ inputs.region }}
50+
role-to-assume: ${{ secrets.REGION_IAM_ROLE }}
51+
mask-aws-account-id: true
52+
- id: workdir
53+
name: Create Workdir
54+
run: |
55+
mkdir -p build/project
56+
- id: cdk-install
57+
name: Install CDK
58+
working-directory: build
59+
run: |
60+
npm i aws-cdk
61+
- id: cdk-project
62+
name: CDK Project
63+
working-directory: build/project
64+
run: |
65+
npx cdk init app --language=typescript
66+
AWS_REGION="${{ inputs.region }}" npx cdk bootstrap
67+
68+
copy_layers:
69+
name: Copy Layers
70+
runs-on: ubuntu-latest
71+
permissions:
72+
contents: write
73+
id-token: write
74+
strategy:
75+
matrix:
76+
layer:
77+
- AWSLambdaPowertoolsPythonV3-python38-arm64
78+
- AWSLambdaPowertoolsPythonV3-python39-arm64
79+
- AWSLambdaPowertoolsPythonV3-python310-arm64
80+
- AWSLambdaPowertoolsPythonV3-python311-arm64
81+
- AWSLambdaPowertoolsPythonV3-python312-arm64
82+
- AWSLambdaPowertoolsPythonV3-python313-arm64
83+
- AWSLambdaPowertoolsPythonV3-python38-x86_64
84+
- AWSLambdaPowertoolsPythonV3-python39-x86_64
85+
- AWSLambdaPowertoolsPythonV3-python310-x86_64
86+
- AWSLambdaPowertoolsPythonV3-python311-x86_64
87+
- AWSLambdaPowertoolsPythonV3-python312-x86_64
88+
- AWSLambdaPowertoolsPythonV3-python313-x86_64
89+
environment: layer-${{ inputs.environment }}
90+
steps:
91+
- id: credentials
92+
name: AWS Credentials
93+
uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502
94+
with:
95+
aws-region: us-east-1
96+
role-to-assume: ${{ secrets.REGION_IAM_ROLE }}
97+
mask-aws-account-id: true
98+
- id: go-setup
99+
name: Setup Go
100+
uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0
101+
- id: go-env
102+
name: Go Env
103+
run: go env
104+
- id: go-install-pkg
105+
name: Install
106+
run: go install github.com/aws-powertools/actions/layer-balancer/cmd/balance@latest
107+
- id: run-balance
108+
name: Run Balance
109+
run: balance -read-region us-east-1 -write-region ${{ inputs.region }} -write-role ${{ secrets.BALANCE_ROLE_ARN }} -layer-name ${{ matrix.layer }} -dry-run false

0 commit comments

Comments
 (0)