Merge branch 'zammad:develop' into develop #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |