-
Notifications
You must be signed in to change notification settings - Fork 33
77 lines (75 loc) · 3.45 KB
/
update-layer.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
name: Bump Version of Ballerina Layer
on:
workflow_dispatch:
jobs:
upload:
runs-on: ubuntu-latest
env:
LAYER_NAME: "ballerina-jre21"
TEMP_BUCKET_NAME: "layer-bucket-temp1"
strategy:
max-parallel: 1
matrix:
region: [ "us-west-1", "us-east-1", "us-east-2", "us-west-2", "ap-south-1", "ap-northeast-3",
"ap-northeast-2", "ap-southeast-1", "ap-southeast-2" ,"ap-northeast-1", "eu-central-1",
"eu-west-1", "eu-west-2", "eu-west-3", "eu-north-1", "sa-east-1" ]
outputs:
layer-version: ${{ steps.setup.outputs.layer-version }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-session-token: ${{ secrets.AWS_SESSION_TOKEN }}
aws-region: ${{ matrix.region }}
- name: Setup and Upload lambda Layer
id: setup
run: |
bucketName="${TEMP_BUCKET_NAME}-${{ matrix.region }}-${{ GITHUB.RUN_NUMBER }}"
cd ballerina-layer
wget https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.5%2B11/OpenJDK21U-jre_x64_linux_hotspot_21.0.5_11.tar.gz -O openjre.tar.gz
tar -xvzf openjre.tar.gz
mv jdk-21.0.5+11-jre jdk
zip -r layer.zip jdk bootstrap
if [[ "${{ matrix.region }}" == "us-east-1" ]]; then
aws s3api create-bucket --bucket $bucketName --region ${{ matrix.region }}
else
aws s3api create-bucket --bucket $bucketName --region ${{ matrix.region }} --create-bucket-configuration LocationConstraint=${{ matrix.region }}
fi
aws s3 cp --acl private ./layer.zip s3://$bucketName/layer.zip
aws lambda publish-layer-version \
--layer-name ${LAYER_NAME} \
--description "Ballerina Lambda runtime layer" \
--content S3Bucket=$bucketName,S3Key=layer.zip \
--license-info "Apache 2.0" --compatible-runtimes provided
version=`aws lambda list-layer-versions --layer-name ${LAYER_NAME} --query 'LayerVersions[0].Version'`
aws lambda add-layer-version-permission --layer-name ${LAYER_NAME} --version-number $version --statement-id \
${{ matrix.region }}-$version --action lambda:GetLayerVersion --principal '*'
aws s3 rb --force s3://$bucketName
echo "::set-output name=layer-version::$version"
write:
runs-on: ubuntu-latest
needs: upload
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Write version to resource file
run: |
echo ${{needs.upload.outputs.layer-version}} > compiler-plugin/src/main/resources/layer-version.txt
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.BALLERINA_BOT_TOKEN }}
commit-message: Update Layer Version
committer: GitHub <[email protected]>
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
signoff: false
branch: temp-layer
delete-branch: true
title: '[Automated] Update Layers'
body: |
Updates AWS Layer version to `${{needs.upload.outputs.layer-version}}`
draft: false