Browse Source

update docker publish

main
Daniel Gibbs 2 months ago
parent
commit
35f430be96
  1. 166
      .github/workflows/docker-publish.yml

166
.github/workflows/docker-publish.yml

@ -5,58 +5,68 @@ on:
branches: "main"
paths:
- Dockerfile*
- entrypoint*
schedule:
- cron: "0 2 * * 6"
- cron: "0 1 * * 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/[email protected]
- name: Build
run: docker build -t gameservermanagers/linuxgsm:ubuntu-24.04 -f ./Dockerfile.ubuntu-2404 .
- name: Login to DockerHub
uses: docker/[email protected]
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/[email protected]
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push (Ubuntu 24.04)
uses: docker/[email protected]
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
name: Build Ubuntu 24.04
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
attestations: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: |
gameservermanagers/linuxgsm
ghcr.io/gameservermanagers/linuxgsm
tags: |
latest
ubuntu
ubuntu-24.04
- name: Build and push (Ubuntu 24.04)
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile.ubuntu-2404
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-ubuntu-2204:
name: Build Ubuntu 22.04
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
attestations: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v4
@ -64,39 +74,50 @@ jobs:
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
- name: Setup Docker Buildx
uses: docker/[email protected]
- name: Build
run: docker build -t gameservermanagers/linuxgsm:ubuntu-22.04 -f ./Dockerfile.ubuntu-2204 .
- name: Login to DockerHub
uses: docker/[email protected]
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.3.0
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: |
gameservermanagers/linuxgsm
ghcr.io/gameservermanagers/linuxgsm
tags: |
latest
ubuntu
ubuntu-22.04
- name: Build and push (Ubuntu 22.04)
uses: docker/[email protected]
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile.ubuntu-2204
platforms: linux/amd64
push: true
tags: |
gameservermanagers/linuxgsm:ubuntu-22.04
ghcr.io/gameservermanagers/linuxgsm:ubuntu-22.04
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-ubuntu-2004:
name: Build Ubuntu 20.04
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
attestations: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v4
@ -104,35 +125,40 @@ jobs:
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
- name: Setup Docker Buildx
uses: docker/[email protected]
- name: Build
run: docker build -t gameservermanagers/linuxgsm:ubuntu-20.04 -f ./Dockerfile.ubuntu-2004 .
- name: Login to DockerHub
uses: docker/[email protected]
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.3.0
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: |
gameservermanagers/linuxgsm
ghcr.io/gameservermanagers/linuxgsm
tags: |
latest
ubuntu
ubuntu-20.04
- name: Build and push (Ubuntu 20.04)
uses: docker/[email protected]
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile.ubuntu-2004
platforms: linux/amd64
push: true
tags: |
gameservermanagers/linuxgsm:ubuntu-20.04
ghcr.io/gameservermanagers/linuxgsm:ubuntu-20.04
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
package-cleanup:
name: Cleanup Old GitHub Packages

Loading…
Cancel
Save