mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-14 22:42:14 -07:00
this will ensure the container can always build and keep caches ready for release. push should only happen on tag triggers It also removes some files from the PR trigger that should never break the build, and would just invalidate cache.
71 lines
2 KiB
YAML
71 lines
2 KiB
YAML
name: Build Docker Container
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- '*Release*'
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
paths:
|
|
- '.github/workflows/docker-release.yml'
|
|
- 'CMakeLists.txt'
|
|
- 'Dockerfile'
|
|
- 'servatrice/**'
|
|
- 'common/**'
|
|
- 'cmake/**'
|
|
- '!**.md'
|
|
|
|
jobs:
|
|
docker:
|
|
name: amd64 & arm64
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: read
|
|
packages: write
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Docker metadata
|
|
id: metadata
|
|
uses: docker/metadata-action@v5
|
|
with:
|
|
images: |
|
|
ghcr.io/cockatrice/servatrice
|
|
labels: |
|
|
org.opencontainers.image.title=Servatrice
|
|
org.opencontainers.image.url=https://cockatrice.github.io/
|
|
org.opencontainers.image.description=Server for cockatrice, a cross-platform virtual tabletop for multiplayer card games
|
|
annotations: |
|
|
org.opencontainers.image.title=Servatrice
|
|
org.opencontainers.image.url=https://cockatrice.github.io/
|
|
org.opencontainers.image.description=Server for cockatrice, a cross-platform virtual tabletop for multiplayer card games
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v3
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Login to GitHub Container Registry
|
|
if: github.ref_type == 'tag'
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ github.token }}
|
|
|
|
- name: Build and push Docker Image
|
|
uses: docker/build-push-action@v6
|
|
with:
|
|
context: .
|
|
platforms: linux/amd64,linux/arm64
|
|
push: ${{ github.ref_type == 'tag' }}
|
|
tags: ${{ steps.metadata.outputs.tags }}
|
|
labels: ${{ steps.metadata.outputs.labels }}
|
|
cache-from: type=gha
|
|
cache-to: type=gha,mode=max
|