1+ name : Build Installers
2+
3+ on :
4+ push :
5+ branches : [ main, develop ]
6+ paths :
7+ - ' Dockerfile'
8+ - ' .github/workflows/build-installers.yml'
9+ pull_request :
10+ branches : [ main ]
11+ paths :
12+ - ' Dockerfile'
13+
14+ jobs :
15+ build-installers :
16+ runs-on : ubuntu-latest
17+ steps :
18+ - uses : actions/checkout@v4
19+
20+ - name : Set up Docker Buildx
21+ uses : docker/setup-buildx-action@v3
22+
23+ - name : Login to GitHub Container Registry
24+ uses : docker/login-action@v3
25+ with :
26+ registry : ghcr.io
27+ username : ${{ github.actor }}
28+ password : ${{ secrets.GITHUB_TOKEN }}
29+
30+ - name : Build and push installers
31+ run : |
32+ # Build awscurl-installer
33+ docker buildx build \
34+ --platform linux/arm64 \
35+ --provenance=false \
36+ --target awscurl-installer \
37+ --tag ghcr.io/${{ github.repository_owner }}/lambda-shell-runtime:awscurl-installer \
38+ --push \
39+ -f - . << 'EOF'
40+ FROM public.ecr.aws/lambda/provided:al2023 AS awscurl-installer
41+ RUN dnf install -y unzip python3-pip findutils && dnf clean all
42+ RUN pip3 install --no-cache-dir --target /tmp/awscurl awscurl && \
43+ find /tmp/awscurl -type d -name '__pycache__' -exec rm -rf {} + && \
44+ find /tmp/awscurl -type f -name '*.pyc' -delete && \
45+ find /tmp/awscurl -type d -name '*.dist-info' -exec rm -rf {} +
46+ EOF
47+
48+ # Build awscli-installer
49+ docker buildx build \
50+ --platform linux/arm64 \
51+ --provenance=false \
52+ --target awscli-installer \
53+ --tag ghcr.io/${{ github.repository_owner }}/lambda-shell-runtime:awscli-installer \
54+ --push \
55+ -f - . << 'EOF'
56+ FROM public.ecr.aws/lambda/provided:al2023 AS awscli-installer
57+ RUN dnf install -y aws-cli && dnf clean all
58+ EOF
0 commit comments