diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3e17d475..ee798d9b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -5,11 +5,13 @@ on: branches: - master - openj9 + - openj9-11 - openj9-nightly - adopt11 - adopt13 - adopt14 - adopt15 + - test/* tags: - "[0-9]+.[0-9]+.[0-9]+" - "[0-9]+.[0-9]+.[0-9]+-openj9" @@ -21,7 +23,7 @@ on: jobs: test: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 @@ -32,20 +34,67 @@ jobs: build: needs: - test - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - - name: Build and push Docker images - uses: docker/build-push-action@v1.1.0 + - name: Prepare + id: prep + run: | + DOCKER_IMAGE=itzg/minecraft-server + VERSION=edge + if [[ $GITHUB_REF == refs/tags/* ]]; then + VERSION=${GITHUB_REF#refs/tags/} + fi + if [[ $GITHUB_REF == refs/heads/* ]]; then + VERSION=${GITHUB_REF#refs/heads/} + if [[ $VERSION == master ]]; then + VERSION=latest + fi + fi + TAGS="${DOCKER_IMAGE}:${VERSION//\//-}" + echo ::set-output name=tags::${TAGS} + echo ::set-output name=cache_from::${TAGS} + echo ::set-output name=version::${VERSION//\//-} + echo ::set-output name=cache_version::${VERSION//\//-} + + - name: Setup Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ steps.prep.outputs.cache_version }}-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx-${{ steps.prep.outputs.cache_version }}- + + - name: Login to DockerHub + uses: docker/login-action@v1 with: - repository: itzg/minecraft-server username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_PASSWORD }} - tag_with_ref: true - tag_with_sha: false - cache_froms: itzg/minecraft-server:latest - add_git_labels: true - labels: org.opencontainers.image.url=https://github.com/itzg/docker-minecraft-server,org.opencontainers.image.documentation=https://github.com/itzg/docker-minecraft-server + + - name: Build and push + id: docker_build + uses: docker/build-push-action@v2 + with: + context: . + file: ./Dockerfile + # ensure latest base image is used + pull: true + # publish push: true + # tags determined by prep step + tags: ${{ steps.prep.outputs.tags }} + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache + labels: | + org.opencontainers.image.documentation=https://github.com/itzg/docker-minecraft-server + org.opencontainers.image.version=${{ steps.prep.outputs.version }} + org.opencontainers.image.source=https://github.com/itzg/docker-minecraft-server + org.opencontainers.image.revision=${{ github.sha }} + + - name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} diff --git a/README.md b/README.md index 637c5597..372c46a4 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,7 @@ To use a different version of Java, please use a docker tag to run your Minecraf | adopt13 | Uses Java version 13 from AdoptOpenJDK | Alpine Linux | | adopt11 | Uses Java version 11 from AdoptOpenJDK | Alpine Linux | | openj9 | Uses Eclipse OpenJ9 JVM | Alpine Linux | +| openj9-11 | Uses Eclipse OpenJ9 JVM for Java 11 | Alpine Linux | | openj9-nightly | Uses Eclipse OpenJ9 JVM testing builds | Alpine Linux | | multiarch | Uses Java version 8 latest update | Debian Linux | | multiarch-latest | Uses Java version 15 latest update | Debian Linux | diff --git a/docker-versions-create.sh b/docker-versions-create.sh index 5c745bca..b36f6f13 100755 --- a/docker-versions-create.sh +++ b/docker-versions-create.sh @@ -1,7 +1,7 @@ #!/bin/bash #set -x # Use this variable to indicate a list of branches that docker hub is watching -branches_list=('openj9' 'openj9-nightly' 'adopt11' 'adopt13' 'adopt14' 'adopt15' 'multiarch' 'multiarch-latest') +branches_list=('openj9' 'openj9-11' 'openj9-nightly' 'adopt11' 'adopt13' 'adopt14' 'adopt15' 'multiarch' 'multiarch-latest') function TrapExit { echo "Checking out back in master"