Skip to content

Commit

Permalink
Move contributor image creation to GitHub actions
Browse files Browse the repository at this point in the history
We could speed this up with creating the amd64 image in parallel but the
bottleneck is always the arm64 as GitHub doesn't seem to have arm
runners available yet.

We now create a PR image which can be tested before in case this is
needed.
  • Loading branch information
vmcj committed Jan 15, 2024
1 parent da865fb commit 88b9604
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 0 deletions.
42 changes: 42 additions & 0 deletions .github/workflows/build-contributor-container-PR.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: 'Build Contributor container (PR)'
# For speedup to do this in parallel: https://docs.docker.com/build/ci/github-actions/multi-platform/
# Loosely based on: https://docs.docker.com/build/ci/github-actions/push-multi-registries/

on:
push:
pull_request_target:
branches:
- main

jobs:
pr-contributor:
if: ${{ github.repository != 'domjudge/domjudge-packaging' || github.ref != 'main' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ghcr.io/${{ github.repository }}

- name: Build and push
uses: docker/build-push-action@v5
with:
context: docker-contributor
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
35 changes: 35 additions & 0 deletions .github/workflows/build-contributor-container-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: 'Build Contributor container (Release)'
# For speedup to do this in parallel: https://docs.docker.com/build/ci/github-actions/multi-platform/
# Loosely based on: https://docs.docker.com/build/ci/github-actions/push-multi-registries/

on:
push:
pull_request_target:
branches:
- main

jobs:
release-contributor:
if: ${{ github.repository == 'domjudge/domjudge-packaging' && github.ref == 'main' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ env.DOCKERHUB_USERNAME }}
password: ${{ env.DOCKERHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v5
with:
context: docker-contributor
platforms: linux/amd64,linux/arm64
push: true
tags: domjudge/domjudge-contributor:latest

0 comments on commit 88b9604

Please sign in to comment.