Skip to content

Docker Publish

Docker Publish #520

name: Docker Publish
on:
workflow_dispatch:
push:
branches: "main"
paths:
- Dockerfile*
- entrypoint*
schedule:
- cron: "0 2 * * 6"
jobs:
build-ubuntu-2404:
name: Build Ubuntu 24.04
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3.3.0
- name: Build
run: docker build -t gameservermanagers/linuxgsm:ubuntu-24.04 -f ./Dockerfile.ubuntu-2404 .
- name: Login to DockerHub
uses: docker/login-action@v3.2.0
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.2.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push (Ubuntu 24.04)
uses: docker/build-push-action@v5.4.0
with:
context: .
file: ./Dockerfile.ubuntu-2404
platforms: linux/amd64
push: true
tags: |
gameservermanagers/linuxgsm:latest
gameservermanagers/linuxgsm:ubuntu
gameservermanagers/linuxgsm:ubuntu-24.04
ghcr.io/gameservermanagers/linuxgsm:latest
ghcr.io/gameservermanagers/linuxgsm:ubuntu
ghcr.io/gameservermanagers/linuxgsm:ubuntu-24.04
build-ubuntu-2204:
name: Build Ubuntu 22.04
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3.3.0
- name: Build
run: docker build -t gameservermanagers/linuxgsm:ubuntu-22.04 -f ./Dockerfile.ubuntu-2204 .
- name: Login to DockerHub
uses: docker/login-action@v3.2.0
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.2.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push (Ubuntu 22.04)
uses: docker/build-push-action@v5.4.0
with:
context: .
file: ./Dockerfile.ubuntu-2204
platforms: linux/amd64
push: true
tags: |
gameservermanagers/linuxgsm:ubuntu-22.04
ghcr.io/gameservermanagers/linuxgsm:ubuntu-22.04
build-ubuntu-2004:
name: Build Ubuntu 20.04
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3.3.0
- name: Build
run: docker build -t gameservermanagers/linuxgsm:ubuntu-20.04 -f ./Dockerfile.ubuntu-2004 .
- name: Login to DockerHub
uses: docker/login-action@v3.2.0
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.2.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push (Ubuntu 20.04)
uses: docker/build-push-action@v5.4.0
with:
context: .
file: ./Dockerfile.ubuntu-2004
platforms: linux/amd64
push: true
tags: |
gameservermanagers/linuxgsm:ubuntu-20.04
ghcr.io/gameservermanagers/linuxgsm:ubuntu-20.04
package-cleanup:
name: Cleanup Old GitHub Packages
needs: [ build-ubuntu-2004, build-ubuntu-2204, build-ubuntu-2404 ]
runs-on: ubuntu-latest
steps:
- name: Delete Package Versions
uses: actions/delete-package-versions@v5
with:
package-name: linuxgsm
package-type: container
min-versions-to-keep: 1
delete-only-untagged-versions: true