Skip to content

Merge branch 'zammad:develop' into develop #1

Merge branch 'zammad:develop' into develop

Merge branch 'zammad:develop' into develop #1

name: docker-release
on:
push:
branches:
- stable
- develop
tags:
- '*'
jobs:
docker-build-image:
strategy:
matrix:
runs-on:
- runner: ubuntu-22.04
platform: 'amd64'
- runner: ['self-hosted', 'arm64']
platform: 'arm64'
runs-on: ${{ matrix.runs-on.runner }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to docker.io container registry
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Quay.io
uses: docker/login-action@v3
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_ROBOT_TOKEN }}
- name: Get tags for platform specific image
id: meta
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/${{ github.repository_owner }}/zammad
index.docker.io/${{ github.repository_owner }}/zammad
index.docker.io/${{ github.repository_owner }}/zammad-docker-compose
quay.io/${{ github.repository_owner }}/zammad
tags: |
type=sha,suffix=-${{ matrix.runs-on.platform }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v5
with:
context: .
labels: ${{ steps.meta.outputs.labels }}
push: true
tags: ${{ steps.meta.outputs.tags }}
docker-create-multiarch-manifest:
runs-on: ubuntu-22.04
needs:
- docker-build-image
strategy:
matrix:
target:
- image: ghcr.io/${{ github.repository_owner }}/zammad
- image: index.docker.io/${{ github.repository_owner }}/zammad
- image: quay.io/${{ github.repository_owner }}/zammad
- image: index.docker.io/${{ github.repository_owner }}/zammad-docker-compose
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to docker.io container registry
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Quay.io
uses: docker/login-action@v3
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_ROBOT_TOKEN }}
- name: Get tag for amd64 image
id: meta_arch_amd64
uses: docker/metadata-action@v5
with:
images: ${{ matrix.target.image }}
tags: |
type=sha,suffix=-amd64
- name: Get tag for arm64 image
id: meta_arch_arm64
uses: docker/metadata-action@v5
with:
images: ${{ matrix.target.image }}
tags: |
type=sha,suffix=-arm64
- name: Get incrementing Zammad version from the most recent tag
run: echo ZAMMAD_VERSION="$(git describe --tags | sed -e 's/-[a-z0-9]\{8,\}.*//g')" >> $GITHUB_ENV
- name: Get Zammad major.minor version from the most recent tag
run: echo ZAMMAD_VERSION_MAJOR_MINOR="$(git describe --tags | cut -f1-2 -d.)" >> $GITHUB_ENV
- name: Get Zammad major version from the most recent tag
run: echo ZAMMAD_VERSION_MAJOR="$(git describe --tags | cut -f1 -d.)" >> $GITHUB_ENV
- name: Get tags for final multiarch reference
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ matrix.target.image }}
tags: |
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'stable') }}
type=raw,value=${{ env.ZAMMAD_VERSION }},enable=${{ github.ref == format('refs/heads/{0}', 'stable') }}
type=raw,value=${{ env.ZAMMAD_VERSION_MAJOR_MINOR }},enable=${{ github.ref == format('refs/heads/{0}', 'stable') }}
type=raw,value=${{ env.ZAMMAD_VERSION_MAJOR }},enable=${{ github.ref == format('refs/heads/{0}', 'stable') }}
type=ref,event=branch
type=ref,event=tag
type=sha
- name: Create manifest list and push
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") ${{ steps.meta_arch_amd64.outputs.tags }} ${{ steps.meta_arch_arm64.outputs.tags }}
- name: Inspect image
run: |
docker buildx imagetools inspect ${{ matrix.target.image }}:${{ steps.meta.outputs.version }}