99
99
aws-region : us-east-1
100
100
mask-aws-account-id : true
101
101
- name : Grab Zip
102
+ env :
103
+ VERSION : ${{ inputs.version }}
102
104
run : |
103
- aws --region us-east-1 lambda get-layer-version-by-arn --arn arn:aws:lambda:us-east-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:${{ inputs.version }} --query 'Content.Location' | xargs curl -L -o AWSLambdaPowertoolsTypeScriptV2.zip
104
- aws --region us-east-1 lambda get-layer-version-by-arn --arn arn:aws:lambda:us-east-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:${{ inputs.version }} > AWSLambdaPowertoolsTypeScriptV2.json
105
+ set -euo pipefail
106
+ aws --region us-east-1 lambda get-layer-version-by-arn --arn "arn:aws:lambda:us-east-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:${VERSION}" --query 'Content.Location' | xargs curl -L -o AWSLambdaPowertoolsTypeScriptV2.zip
107
+ aws --region us-east-1 lambda get-layer-version-by-arn --arn "arn:aws:lambda:us-east-1:094274105915:layer:AWSLambdaPowertoolsTypeScriptV2:${VERSION}" > AWSLambdaPowertoolsTypeScriptV2.json
105
108
- name : Store Zip
106
109
uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
107
110
with :
@@ -158,17 +161,18 @@ jobs:
158
161
- name : Create Layer
159
162
id : create-layer
160
163
run : |
164
+ set -euo pipefail
161
165
cat AWSLambdaPowertoolsTypeScriptV2.json | jq '{"LayerName": "AWSLambdaPowertoolsTypeScriptV2", "Description": .Description, "CompatibleRuntimes": .CompatibleRuntimes, "LicenseInfo": .LicenseInfo}' > input.json
162
-
163
- LAYER_VERSION=$(aws --region ${{ matrix.region}} lambda publish-layer-version \
166
+
167
+ LAYER_VERSION=$(aws --region " ${{ matrix.region }}" lambda publish-layer-version \
164
168
--zip-file fileb://./AWSLambdaPowertoolsTypeScriptV2.zip \
165
169
--cli-input-json file://./input.json \
166
170
--query 'Version' \
167
171
--output text)
168
172
169
173
echo "LAYER_VERSION=$LAYER_VERSION" >> "$GITHUB_OUTPUT"
170
174
171
- aws --region ${{ matrix.region}} lambda add-layer-version-permission \
175
+ aws --region " ${{ matrix.region }}" lambda add-layer-version-permission \
172
176
--layer-name 'AWSLambdaPowertoolsTypeScriptV2' \
173
177
--statement-id 'PublicLayer' \
174
178
--action lambda:GetLayerVersion \
@@ -182,17 +186,19 @@ jobs:
182
186
- name : Verify Layer
183
187
env :
184
188
LAYER_VERSION : ${{ steps.create-layer.outputs.LAYER_VERSION }}
189
+ ENVIRONMENT : ${{ inputs.environment }}
185
190
run : |
186
- export layer_output='AWSLambdaPowertoolsTypeScriptV2-${{matrix.region}}.json'
191
+ set -euo pipefail
192
+ export layer_output="AWSLambdaPowertoolsTypeScriptV2-${{ matrix.region }}.json"
187
193
# Dynamic secret access is safe here - secrets are scoped per environment
188
- aws --region ${{ matrix.region}} lambda get-layer-version-by-arn --arn ' arn:${{ needs.setup.outputs.partition }}:lambda:${{ matrix.region}}:${{ secrets[format('AWS_ACCOUNT_{0}', steps.transform.outputs.CONVERTED_REGION)] }}:layer:AWSLambdaPowertoolsTypeScriptV2:${{ env. LAYER_VERSION }}' > $layer_output
194
+ aws --region " ${{ matrix.region }}" lambda get-layer-version-by-arn --arn " arn:${{ needs.setup.outputs.partition }}:lambda:${{ matrix.region }}:${{ secrets[format('AWS_ACCOUNT_{0}', steps.transform.outputs.CONVERTED_REGION)] }}:layer:AWSLambdaPowertoolsTypeScriptV2:${LAYER_VERSION}" > " $layer_output"
189
195
REMOTE_SHA=$(jq -r '.Content.CodeSha256' $layer_output)
190
196
LOCAL_SHA=$(jq -r '.Content.CodeSha256' AWSLambdaPowertoolsTypeScriptV2.json)
191
197
test "$REMOTE_SHA" == "$LOCAL_SHA" && echo "SHA OK: ${LOCAL_SHA}" || exit 1
192
198
REMOTE_DESCRIPTION=$(jq -r '.Description' $layer_output)
193
199
LOCAL_DESCRIPTION=$(jq -r '.Description' AWSLambdaPowertoolsTypeScriptV2.json)
194
200
test "$REMOTE_DESCRIPTION" == "$LOCAL_DESCRIPTION" && echo "Version number OK: ${LOCAL_DESCRIPTION}" || exit 1
195
- if [ "${{ inputs.environment }} " == "Prod" ]; then
201
+ if [ "$ENVIRONMENT " == "Prod" ]; then
196
202
REMOTE_LAYER_VERSION=$(jq -r '.LayerVersionArn' $layer_output | sed 's/.*://')
197
203
LOCAL_LAYER_VERSION=$(jq -r '.LayerVersionArn' AWSLambdaPowertoolsTypeScriptV2.json | sed 's/.*://')
198
204
test "$REMOTE_LAYER_VERSION" == "$LOCAL_LAYER_VERSION" && echo "Layer Version number OK: ${LOCAL_LAYER_VERSION}" || exit 1
0 commit comments