Repository navigation
CD #2430
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |