build-docker-images #2658
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: Build Lucee Docker Images | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| LUCEE_VERSION: | |
| required: true | |
| type: string | |
| REBUILD_DATE: | |
| required: false | |
| type: string | |
| DRY_RUN: | |
| required: false | |
| default: false | |
| type: boolean | |
| workflow_call: | |
| inputs: | |
| LUCEE_VERSION: | |
| required: true | |
| type: string | |
| REBUILD_DATE: | |
| required: false | |
| type: string | |
| DRY_RUN: | |
| required: false | |
| default: "false" | |
| type: string | |
| repository_dispatch: | |
| types: [build-docker-images] | |
| env: | |
| LUCEE_VERSION: ${{ github.event.inputs.LUCEE_VERSION }} | |
| REBUILD_DATE: ${{ github.event.inputs.REBUILD_DATE }} | |
| DRY_RUN: ${{ github.event.inputs.DRY_RUN }} | |
| jobs: | |
| # Build amd64 images natively on x64 runner | |
| build-amd64: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3.9.0 | |
| with: | |
| buildkitd-config: .github/buildkitd.toml | |
| - name: Setup Python v3 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@v3.3.0 | |
| with: | |
| username: ${{ secrets.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_PASSWORD }} | |
| - name: Copy repository_dispatch event clientpayload to ENV | |
| if: ${{ github.event_name == 'repository_dispatch' }} | |
| run: | | |
| echo "LUCEE_VERSION=${{ github.event.client_payload.LUCEE_VERSION }}" >> $GITHUB_ENV | |
| echo "BRANCH=${{ github.event.client_payload.BRANCH }}" >> $GITHUB_ENV | |
| - name: Setup env | |
| run: | | |
| echo LUCEE_VERSION: $LUCEE_VERSION | |
| pip3 install -r requirements.txt | |
| python3 ./generate-matrix.py >/dev/null && git diff --exit-code | |
| - name: Build [JRE21, Tomcat 11] | |
| run: python3 -u build-images.py --arch-suffix="-amd64" --buildx-platform linux/amd64 | |
| env: | |
| TOMCAT_VERSION: "11.0" | |
| TOMCAT_JAVA_VERSION: jre21-temurin-noble | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "6.2,7.0" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light,-zero" | |
| - name: Build [JDK21, Tomcat 11] | |
| run: python3 -u build-images.py --arch-suffix="-amd64" --buildx-platform linux/amd64 | |
| env: | |
| TOMCAT_VERSION: "11.0" | |
| TOMCAT_JAVA_VERSION: jdk21-temurin-noble | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "6.2,7.0" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: "" | |
| - name: Build [JRE21, Tomcat 9.0] | |
| run: python3 -u build-images.py --arch-suffix="-amd64" --buildx-platform linux/amd64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jre21-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Build [JRE11, Tomcat 9.0] | |
| run: python3 -u build-images.py --arch-suffix="-amd64" --buildx-platform linux/amd64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jre11-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4,6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Build [JRE8, Tomcat 9.0] | |
| run: python3 -u build-images.py --arch-suffix="-amd64" --buildx-platform linux/amd64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jre8-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Build [JDK21, Tomcat 9.0] | |
| run: python3 -u build-images.py --arch-suffix="-amd64" --buildx-platform linux/amd64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk21-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Build [JDK11, Tomcat 9.0] | |
| run: python3 -u build-images.py --arch-suffix="-amd64" --buildx-platform linux/amd64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk11-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4,6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Build [JDK8, Tomcat 9.0] | |
| run: python3 -u build-images.py --arch-suffix="-amd64" --buildx-platform linux/amd64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk8-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| SKIP_SNAPSHOTS: true | |
| - name: Build [JDK11, Tomcat 9.0, Ubuntu 20.04] | |
| run: python3 -u build-images.py --arch-suffix="-amd64" --buildx-platform linux/amd64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk11-temurin-focal | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4,6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| SKIP_SNAPSHOTS: true | |
| - name: Build [JDK8, Tomcat 9.0, Ubuntu 20.04] | |
| run: python3 -u build-images.py --arch-suffix="-amd64" --buildx-platform linux/amd64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk8-temurin-focal | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| SKIP_SNAPSHOTS: true | |
| # Build arm64 images natively on arm64 runner | |
| build-arm64: | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3.9.0 | |
| with: | |
| buildkitd-config: .github/buildkitd.toml | |
| - name: Setup Python v3 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@v3.3.0 | |
| with: | |
| username: ${{ secrets.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_PASSWORD }} | |
| - name: Copy repository_dispatch event clientpayload to ENV | |
| if: ${{ github.event_name == 'repository_dispatch' }} | |
| run: | | |
| echo "LUCEE_VERSION=${{ github.event.client_payload.LUCEE_VERSION }}" >> $GITHUB_ENV | |
| echo "BRANCH=${{ github.event.client_payload.BRANCH }}" >> $GITHUB_ENV | |
| - name: Setup env | |
| run: | | |
| echo LUCEE_VERSION: $LUCEE_VERSION | |
| pip3 install -r requirements.txt | |
| python3 ./generate-matrix.py >/dev/null && git diff --exit-code | |
| - name: Build [JRE21, Tomcat 11] | |
| run: python3 -u build-images.py --arch-suffix="-arm64" --buildx-platform linux/arm64 | |
| env: | |
| TOMCAT_VERSION: "11.0" | |
| TOMCAT_JAVA_VERSION: jre21-temurin-noble | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "6.2,7.0" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light,-zero" | |
| - name: Build [JDK21, Tomcat 11] | |
| run: python3 -u build-images.py --arch-suffix="-arm64" --buildx-platform linux/arm64 | |
| env: | |
| TOMCAT_VERSION: "11.0" | |
| TOMCAT_JAVA_VERSION: jdk21-temurin-noble | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "6.2,7.0" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: "" | |
| - name: Build [JRE21, Tomcat 9.0] | |
| run: python3 -u build-images.py --arch-suffix="-arm64" --buildx-platform linux/arm64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jre21-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Build [JRE11, Tomcat 9.0] | |
| run: python3 -u build-images.py --arch-suffix="-arm64" --buildx-platform linux/arm64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jre11-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4,6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Build [JRE8, Tomcat 9.0] | |
| run: python3 -u build-images.py --arch-suffix="-arm64" --buildx-platform linux/arm64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jre8-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Build [JDK21, Tomcat 9.0] | |
| run: python3 -u build-images.py --arch-suffix="-arm64" --buildx-platform linux/arm64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk21-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Build [JDK11, Tomcat 9.0] | |
| run: python3 -u build-images.py --arch-suffix="-arm64" --buildx-platform linux/arm64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk11-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4,6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Build [JDK8, Tomcat 9.0] | |
| run: python3 -u build-images.py --arch-suffix="-arm64" --buildx-platform linux/arm64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk8-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| SKIP_SNAPSHOTS: true | |
| - name: Build [JDK11, Tomcat 9.0, Ubuntu 20.04] | |
| run: python3 -u build-images.py --arch-suffix="-arm64" --buildx-platform linux/arm64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk11-temurin-focal | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4,6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| SKIP_SNAPSHOTS: true | |
| - name: Build [JDK8, Tomcat 9.0, Ubuntu 20.04] | |
| run: python3 -u build-images.py --arch-suffix="-arm64" --buildx-platform linux/arm64 | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk8-temurin-focal | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| SKIP_SNAPSHOTS: true | |
| # Create and push multi-arch manifests | |
| create-manifests: | |
| needs: [build-amd64, build-arm64] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python v3 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@v3.3.0 | |
| with: | |
| username: ${{ secrets.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_PASSWORD }} | |
| - name: Copy repository_dispatch event clientpayload to ENV | |
| if: ${{ github.event_name == 'repository_dispatch' }} | |
| run: | | |
| echo "LUCEE_VERSION=${{ github.event.client_payload.LUCEE_VERSION }}" >> $GITHUB_ENV | |
| echo "BRANCH=${{ github.event.client_payload.BRANCH }}" >> $GITHUB_ENV | |
| - name: Setup env | |
| run: | | |
| pip3 install -r requirements.txt | |
| - name: Create manifests [JRE21, Tomcat 11] | |
| run: python3 -u build-images.py --create-manifests | |
| env: | |
| TOMCAT_VERSION: "11.0" | |
| TOMCAT_JAVA_VERSION: jre21-temurin-noble | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "6.2,7.0" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light,-zero" | |
| - name: Create manifests [JDK21, Tomcat 11] | |
| run: python3 -u build-images.py --create-manifests | |
| env: | |
| TOMCAT_VERSION: "11.0" | |
| TOMCAT_JAVA_VERSION: jdk21-temurin-noble | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "6.2,7.0" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: "" | |
| - name: Create manifests [JRE21, Tomcat 9.0] | |
| run: python3 -u build-images.py --create-manifests | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jre21-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Create manifests [JRE11, Tomcat 9.0] | |
| run: python3 -u build-images.py --create-manifests | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jre11-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4,6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Create manifests [JRE8, Tomcat 9.0] | |
| run: python3 -u build-images.py --create-manifests | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jre8-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Create manifests [JDK21, Tomcat 9.0] | |
| run: python3 -u build-images.py --create-manifests | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk21-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Create manifests [JDK11, Tomcat 9.0] | |
| run: python3 -u build-images.py --create-manifests | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk11-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4,6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| - name: Create manifests [JDK8, Tomcat 9.0] | |
| run: python3 -u build-images.py --create-manifests | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk8-temurin-jammy | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| SKIP_SNAPSHOTS: true | |
| - name: Create manifests [JDK11, Tomcat 9.0, Ubuntu 20.04] | |
| run: python3 -u build-images.py --create-manifests | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk11-temurin-focal | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4,6.0,6.1" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| SKIP_SNAPSHOTS: true | |
| - name: Create manifests [JDK8, Tomcat 9.0, Ubuntu 20.04] | |
| run: python3 -u build-images.py --create-manifests | |
| env: | |
| TOMCAT_VERSION: "9.0" | |
| TOMCAT_JAVA_VERSION: jdk8-temurin-focal | |
| TOMCAT_BASE_IMAGE: "" | |
| LUCEE_MINOR: "5.3,5.4" | |
| LUCEE_SERVER: ",-nginx" | |
| LUCEE_VARIANTS: ",-light" | |
| SKIP_SNAPSHOTS: true |