Skip to content

Commit 5f9ebdf

Browse files
committed
Output the layer version instead of layer arn from the deploy layer workflow and added update ssm workflow to be called from the publish layer workflow
1 parent 4589cbf commit 5f9ebdf

File tree

4 files changed

+63
-24
lines changed

4 files changed

+63
-24
lines changed

.github/scripts/update_layer_arn.sh

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@
88
# see .github/workflows/publish_layer.yml
99

1010

11-
# Get the new layer arn from the first command-line argument
12-
new_layer_arn=$1
13-
if [ -z "$new_layer_arn" ]; then
14-
echo "Usage: $0 <new_layer_arn>"
11+
# Get the new layer version from the first command-line argument
12+
new_version=$1
13+
if [ -z "$new_version" ]; then
14+
echo "Usage: $0 <new_version>"
1515
exit 1
1616
fi
17-
new_version=$(echo $new_layer_arn | sed 's/.*://')
1817

1918
# Find all files with specified extensions in ./docs and ./examples directories
2019
# -type f: only find files (not directories)

.github/workflows/publish_layer.yml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,26 @@ jobs:
8080
secrets:
8181
target-account-role: ${{ secrets.AWS_LAYERS_PROD_ROLE_ARN }}
8282

83+
update-ssm-beta:
84+
needs: [deploy-beta]
85+
uses: ./.github/workflows/update_ssm.yml
86+
permissions:
87+
contents: read
88+
with:
89+
environment: beta
90+
package_version: ${{ inputs.latest_published_version }}
91+
layer-version: ${{ needs.deploy-beta.outputs.layer-version }}
92+
93+
update-ssm-prod:
94+
needs: [deploy-prod]
95+
uses: ./.github/workflows/update_ssm.yml
96+
permissions:
97+
contents: read
98+
with:
99+
environment: prod
100+
package_version: ${{ inputs.latest_published_version }}
101+
layer-version: ${{ needs.deploy-prod.outputs.layer-version }}
102+
83103
update_layer_arn_docs:
84104
needs: [deploy-prod]
85105
# Force Github action to run only a single job at a time (based on the group name)
@@ -98,7 +118,7 @@ jobs:
98118
ref: ${{ github.sha }}
99119
- name: Replace layer versions in documentation
100120
run: |
101-
./.github/scripts/update_layer_arn.sh ${{ needs.deploy-prod.outputs.layer-arn }}
121+
./.github/scripts/update_layer_arn.sh ${{ needs.deploy-prod.outputs.layer-version }}
102122
- name: Stage changes
103123
run: git add .
104124
- name: Create PR

.github/workflows/reusable_deploy_layer_stack.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ on:
1616
required: true
1717
type: string
1818
outputs:
19-
layer-arn:
20-
description: "The latest deployed Layer ARN"
21-
value: ${{ jobs.deploy-cdk-stack.outputs.layer-arn }}
19+
layer-version:
20+
description: "The latest deployed Layer version"
21+
value: ${{ jobs.deploy-cdk-stack.outputs.layer-version }}
2222
secrets:
2323
target-account-role:
2424
required: true
@@ -70,7 +70,7 @@ jobs:
7070
"mx-central-1"
7171
]
7272
outputs:
73-
layer-arn: ${{ steps.store-latest-layer-arn.outputs.layer-arn }}
73+
layer-version: ${{ steps.store-latest-layer-arn.outputs.layer-version }}
7474
steps:
7575
- name: checkout
7676
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
@@ -100,10 +100,11 @@ jobs:
100100
run: |
101101
mkdir cdk-layer-stack
102102
jq -r -c '.LayerPublisherStack.LatestLayerArn' layers/cdk-outputs.json > cdk-layer-stack/${{ matrix.region }}-layer-version.txt
103+
layer_arn=$(cat cdk-layer-stack/${{ matrix.region }}-layer-version.txt)
104+
echo "$layer_arn"
103105
if [ "${{ matrix.region }}" = "us-east-1" ]; then
104-
echo "layer-arn=$(cat cdk-layer-stack/${{ matrix.region }}-layer-version.txt)" | tee -a "$GITHUB_OUTPUT"
105-
else
106-
cat cdk-layer-stack/${{ matrix.region }}-layer-version.txt
106+
layer_version=$(echo $layer_arn | sed 's/.*://')
107+
echo "layer-version=$layer_version" >> "$GITHUB_OUTPUT"
107108
fi
108109
- name: Save Layer ARN artifact
109110
if: ${{ inputs.stage == 'PROD' }}

.github/workflows/update_ssm.yml

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ on:
1818
description: Environment to deploy to
1919
type: choice
2020
options:
21-
- Beta
22-
- Prod
21+
- beta
22+
- prod
2323
required: true
2424

2525
write_latest:
@@ -32,6 +32,32 @@ on:
3232
type: string
3333
required: true
3434

35+
layer-version:
36+
description: Layer version of the published layer
37+
type: string
38+
required: true
39+
40+
workflow_call:
41+
inputs:
42+
environment:
43+
description: Environment to deploy to
44+
type: string
45+
required: true
46+
47+
write_latest:
48+
description: Write to the latest path
49+
type: boolean
50+
required: false
51+
52+
package_version:
53+
description: Semantic Version of published layer
54+
type: string
55+
required: true
56+
layer-version:
57+
description: Layer version of the published layer
58+
type: string
59+
required: true
60+
3561
name: SSM Parameters
3662
run-name: SSM Parameters - TypeScript
3763

@@ -92,22 +118,15 @@ jobs:
92118
aws-region: ${{ matrix.region }}
93119
role-to-assume: ${{ secrets[format('{0}', steps.transform.outputs.CONVERTED_REGION)] }}
94120
mask-aws-account-id: true
95-
- id: get-version
96-
env:
97-
prefix: ${{ inputs.environment == 'beta' && '/aws/service/powertools/beta' || '/aws/service/powertools' }}
98-
run: |
99-
current_layer_version=$(aws ssm get-parameter --name ${{ env.prefix }}/typescript/generic/all/${{ inputs.package_version }} --query Parameter.Value --output text --region us-east-1)
100-
new_layer_version=$((current_layer_version + 1))
101-
echo "new_layer_version=$new_layer_version" >> "$GITHUB_OUTPUT"
102121
- id: write-version
103122
env:
104123
prefix: ${{ inputs.environment == 'beta' && '/aws/service/powertools/beta' || '/aws/service/powertools' }}
105124
run: |
106-
aws ssm put-parameter --name ${{ env.prefix }}/typescript/generic/all/${{ inputs.package_version }} --value "arn:aws:lambda:${{ matrix.region }}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:${{ steps.get-version.outputs.new_layer_version }}" --type String --overwrite
125+
aws ssm put-parameter --name ${{ env.prefix }}/typescript/generic/all/${{ inputs.package_version }} --value "arn:aws:lambda:${{ matrix.region }}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:${{ inputs.layer-version }}" --type String --overwrite
107126
108127
- id: write-latest
109128
if: inputs.write_latest == true
110129
env:
111130
prefix: ${{ inputs.environment == 'beta' && '/aws/service/powertools/beta' || '/aws/service/powertools' }}
112131
run: |
113-
aws ssm put-parameter --name ${{ env.prefix }}/typescript/generic/all/latest --value "arn:aws:lambda:${{ matrix.region }}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:${{ steps.get-version.outputs.new_layer_version }}" --type String --overwrite
132+
aws ssm put-parameter --name ${{ env.prefix }}/typescript/generic/all/latest --value "arn:aws:lambda:${{ matrix.region }}:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:${{ inputs.layer-version }}" --type String --overwrite

0 commit comments

Comments
 (0)