docker-minecraft-server/.github/workflows/main.yml

96 lines
2.6 KiB
YAML
Raw Normal View History

2020-06-20 21:01:27 +00:00
name: Build and Publish
2020-06-10 23:43:07 +00:00
on:
push:
branches:
2021-01-31 00:32:32 +00:00
- java8
- openj9
2021-01-12 23:18:08 +00:00
- openj9-11
- adopt11
- test/alpine/*
tags:
2021-01-31 00:32:32 +00:00
- "[0-9]+.[0-9]+.[0-9]+-java8"
2020-06-19 18:15:23 +00:00
- "[0-9]+.[0-9]+.[0-9]+-openj9"
2021-01-12 23:33:03 +00:00
- "[0-9]+.[0-9]+.[0-9]+-openj9-11"
2020-06-19 18:15:23 +00:00
- "[0-9]+.[0-9]+.[0-9]+-openj9-nightly"
- "[0-9]+.[0-9]+.[0-9]+-adopt11"
2020-06-10 23:43:07 +00:00
2021-12-05 00:42:03 +00:00
env:
IMAGE_TO_TEST: itzg/minecraft-server:test-${{ github.repository_owner }}-${{ github.run_id }}
2020-06-10 23:43:07 +00:00
jobs:
build:
runs-on: ubuntu-20.04
2020-06-10 23:43:07 +00:00
steps:
- uses: actions/checkout@v2.4.0
2020-06-10 23:43:07 +00:00
- 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=version::${VERSION//\//-}
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
2020-06-10 23:43:07 +00:00
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASSWORD }}
2021-12-05 00:42:03 +00:00
- name: Build for test
uses: docker/build-push-action@v2.7.0
if: github.ref_name == 'master'
with:
context: .
platforms: linux/amd64
tags: ${{ env.IMAGE_TO_TEST }}
# ensure latest base image is used
pull: true
load: true
push: false
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Run tests
if: github.ref_name == 'master'
run: |
tests/test.sh
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2.7.0
with:
context: .
file: ./Dockerfile
2021-01-12 23:20:57 +00:00
# ensure latest base image is used
pull: true
# publish
push: true
2021-01-12 23:20:57 +00:00
# tags determined by prep step
tags: ${{ steps.prep.outputs.tags }}
2021-12-05 00:42:03 +00:00
cache-from: type=gha
cache-to: type=gha,mode=max
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 }}