@@ -93,15 +93,18 @@ jobs:
9393 environment : Prod (Readonly)
9494 steps :
9595 - name : Configure AWS Credentials
96- uses : aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
96+ uses : aws-actions/configure-aws-credentials@a03048d87541d1d9fcf2ecf528a4a65ba9bd7838 # v5.0.0
9797 with :
9898 role-to-assume : ${{ secrets.AWS_IAM_ROLE }}
9999 aws-region : us-east-1
100100 mask-aws-account-id : true
101101 - name : Grab Zip
102+ env :
103+ VERSION : ${{ inputs.version }}
102104 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
105108 - name : Store Zip
106109 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
107110 with :
@@ -148,7 +151,7 @@ jobs:
148151 run : |
149152 echo 'CONVERTED_REGION=${{ matrix.region }}' | tr 'a-z\-' 'A-Z_' >> "$GITHUB_OUTPUT"
150153 - name : Configure AWS Credentials
151- uses : aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
154+ uses : aws-actions/configure-aws-credentials@a03048d87541d1d9fcf2ecf528a4a65ba9bd7838 # v5.0.0
152155 with :
153156 # Dynamic secret access is safe here - secrets are scoped per environment
154157 role-to-assume : ${{ secrets[format('IAM_ROLE_{0}', steps.transform.outputs.CONVERTED_REGION)] }}
@@ -158,17 +161,18 @@ jobs:
158161 - name : Create Layer
159162 id : create-layer
160163 run : |
164+ set -euo pipefail
161165 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 \
164168 --zip-file fileb://./AWSLambdaPowertoolsTypeScriptV2.zip \
165169 --cli-input-json file://./input.json \
166170 --query 'Version' \
167171 --output text)
168172
169173 echo "LAYER_VERSION=$LAYER_VERSION" >> "$GITHUB_OUTPUT"
170174
171- aws --region ${{ matrix.region}} lambda add-layer-version-permission \
175+ aws --region " ${{ matrix.region }}" lambda add-layer-version-permission \
172176 --layer-name 'AWSLambdaPowertoolsTypeScriptV2' \
173177 --statement-id 'PublicLayer' \
174178 --action lambda:GetLayerVersion \
@@ -182,17 +186,19 @@ jobs:
182186 - name : Verify Layer
183187 env :
184188 LAYER_VERSION : ${{ steps.create-layer.outputs.LAYER_VERSION }}
189+ ENVIRONMENT : ${{ inputs.environment }}
185190 run : |
186- export layer_output='AWSLambdaPowertoolsTypeScriptV2-${{matrix.region}}.json'
191+ set -euo pipefail
192+ export layer_output="AWSLambdaPowertoolsTypeScriptV2-${{ matrix.region }}.json"
187193 # 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"
189195 REMOTE_SHA=$(jq -r '.Content.CodeSha256' $layer_output)
190196 LOCAL_SHA=$(jq -r '.Content.CodeSha256' AWSLambdaPowertoolsTypeScriptV2.json)
191197 test "$REMOTE_SHA" == "$LOCAL_SHA" && echo "SHA OK: ${LOCAL_SHA}" || exit 1
192198 REMOTE_DESCRIPTION=$(jq -r '.Description' $layer_output)
193199 LOCAL_DESCRIPTION=$(jq -r '.Description' AWSLambdaPowertoolsTypeScriptV2.json)
194200 test "$REMOTE_DESCRIPTION" == "$LOCAL_DESCRIPTION" && echo "Version number OK: ${LOCAL_DESCRIPTION}" || exit 1
195- if [ "${{ inputs.environment }} " == "Prod" ]; then
201+ if [ "$ENVIRONMENT " == "Prod" ]; then
196202 REMOTE_LAYER_VERSION=$(jq -r '.LayerVersionArn' $layer_output | sed 's/.*://')
197203 LOCAL_LAYER_VERSION=$(jq -r '.LayerVersionArn' AWSLambdaPowertoolsTypeScriptV2.json | sed 's/.*://')
198204 test "$REMOTE_LAYER_VERSION" == "$LOCAL_LAYER_VERSION" && echo "Layer Version number OK: ${LOCAL_LAYER_VERSION}" || exit 1
0 commit comments