Skip to content

CD

CD #2430

Workflow file for this run

name: CD
on:
workflow_dispatch:
push:
branches:
- master
schedule:
- cron: '0 5 * * *'
permissions:
id-token: write
contents: read
jobs:
sandbox-jar:
runs-on: ubuntu-latest
name: Sandbox JAR
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup JDK 8
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0
with:
distribution: temurin
java-version: 8
- name: Build with Maven
run: mvn -B package -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
- name: Upload JAR
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a #v7.0.1
with:
name: sandbox.jar
path: target/sandbox.jar
image:
needs: sandbox-jar
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
jdk:
- version: 8
docker: docker/jdk
image: eclipse-temurin:8-alpine
vmargs: ''
- version: 9
docker: docker/jdk
image: adoptopenjdk/openjdk9:alpine
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 10
docker: docker/jdk
image: adoptopenjdk/openjdk10:alpine-slim
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 11
docker: docker/jdk
image: eclipse-temurin:11-alpine
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 12
docker: docker/jdk
image: adoptopenjdk/openjdk12:alpine-slim
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 13
docker: docker/jdk
image: adoptopenjdk/openjdk13:alpine-slim
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 14
docker: docker/jdk
image: adoptopenjdk/openjdk14:alpine-slim
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 15
docker: docker/jdk
image: adoptopenjdk/openjdk15:alpine-slim
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 16
docker: docker/jdk
image: eclipse-temurin:16-alpine
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 17
docker: docker/jdk
image: eclipse-temurin:17-alpine
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 18
docker: docker/jdk
image: eclipse-temurin:18-alpine
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 19
docker: docker/jdk
image: eclipse-temurin:19-alpine
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 20
docker: docker/jdk
image: eclipse-temurin:20-alpine
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 21
docker: docker/jdk
image: eclipse-temurin:21-alpine
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 22
docker: docker/jdk
image: eclipse-temurin:22-alpine
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 23
docker: docker/jdk
image: eclipse-temurin:23-alpine
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 24
docker: docker/jdk
image: eclipse-temurin:24-alpine
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 25
docker: docker/jdk
image: eclipse-temurin:25-alpine
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 26
docker: docker/jdk
image: eclipse-temurin:26-alpine
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 27
docker: docker/jdk
image: openjdk:27-ea-slim
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: 28
docker: docker/jdk
image: openjdk:28-ea-slim
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
- version: valhalla
docker: docker/valhalla
image: n/a
vmargs: '--add-opens java.base/java.util=ALL-UNNAMED'
name: Java ${{ matrix.jdk.version }} Image (${{ matrix.jdk.image }})
env:
ECR_REPOSITORY: javaalmanac/sandbox
LATEST_TAG: lambda-latest-${{ matrix.jdk.version }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Download JAR
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: sandbox.jar
path: ${{ matrix.jdk.docker }}
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@e6de054238d6b7531b4efff3b6587d9aade6a06c # v6.2.3
with:
role-to-assume: arn:aws:iam::830482727482:role/github-workflow-io.javaalmanac.sandbox
aws-region: eu-central-1
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@d539f0932e70871a027e9d5a9d8fc38589180a64 # v2.1.6
- name: Build, tag, and push image to Amazon ECR
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
run: |
docker build --provenance=false --build-arg JDK_IMAGE=${{ matrix.jdk.image }} --build-arg "VMARGS=${{ matrix.jdk.vmargs }}" -t sandbox ${{ matrix.jdk.docker }}
docker tag sandbox $ECR_REGISTRY/$ECR_REPOSITORY:$LATEST_TAG
docker inspect sandbox
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$LATEST_TAG
- name: Update Lambda
uses: aws-actions/aws-lambda-deploy@d496277188b89f0be02d7a2216fc912c0427702a # v1.1.2
with:
function-name: jdk-sandbox-${{ matrix.jdk.version }}
package-type: Image
image-uri: ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ env.LATEST_TAG }}
- name: Logout of Amazon ECR
if: always()
run: docker logout ${{ steps.login-ecr.outputs.registry }}