Fix #169: Explicitly state different UIDs/GIDs across distros #215
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 image | |
on: | |
push: | |
branches: [ 'master' ] | |
jobs: | |
Unit_Tests: | |
runs-on: ubuntu-latest | |
steps: | |
# Checkout | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- uses: ./.github/actions/unit-tests | |
Integration_Tests: | |
runs-on: ubuntu-latest | |
steps: | |
# Checkout | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- uses: ./.github/actions/integration-tests | |
with: | |
XOAUTH2_RELAYHOST_USERNAME: ${{ secrets.XOAUTH2_RELAYHOST_USERNAME }} | |
XOAUTH2_CLIENT_ID: ${{ secrets.XOAUTH2_CLIENT_ID }} | |
XOAUTH2_SECRET: ${{ secrets.XOAUTH2_SECRET }} | |
XOAUTH2_INITIAL_REFRESH_TOKEN: ${{ secrets.XOAUTH2_INITIAL_REFRESH_TOKEN }} | |
Helm_chart_Tests: | |
runs-on: ubuntu-latest | |
steps: | |
# Checkout | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- uses: ./.github/actions/helm-chart-tests | |
Build_PostfixExporter: | |
runs-on: ubuntu-latest | |
needs: | |
- Helm_chart_Tests | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- uses: ./.github/actions/build-postfix-exporter | |
with: | |
DOCKER_ACCESS_TOKEN: '${{ secrets.DOCKER_ACCESS_TOKEN }}' | |
tags: | | |
boky/postfix-exporter:latest | |
boky/postfix-exporter:edge | |
Build_Alpine: | |
runs-on: ubuntu-latest | |
needs: | |
- Unit_Tests | |
- Integration_Tests | |
steps: | |
# Checkout | |
- name: Checkout | |
uses: actions/checkout@v4 | |
# Buildkit setup | |
- uses: ./.github/actions/buildx-setup | |
# Docker hub login | |
- uses: ./.github/actions/docker-hub-login | |
with: | |
DOCKER_ACCESS_TOKEN: '${{ secrets.DOCKER_ACCESS_TOKEN }}' | |
- name: Cache Docker layers | |
uses: actions/cache@v4 | |
with: | |
path: /tmp/.buildx-cache | |
#key: ${{ runner.os }}-buildx-${{ hashFiles('**/Dockerfile') }} | |
key: ${{ runner.os }}-alpine-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-alpine- | |
- name: Fix issue with building Alpine # See https://gitlab.alpinelinux.org/alpine/aports/-/issues/12406 | |
run: | | |
update-binfmts --enable | |
- name: Build and push Alpine | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
push: true | |
tags: | | |
boky/postfix:edge | |
boky/postfix:edge-alpine | |
# linux/s390x: "rsyslog (no such package)" | |
# Latest Alpine does not have all the packages for 386 anymore. :-( | |
platforms: "linux/arm/v6,linux/arm/v7,linux/ppc64le,linux/amd64,linux/arm64" | |
cache-from: type=local,src=/tmp/.buildx-cache/alpine,mode=max,compression=estargz | |
cache-to: type=local,dest=/tmp/.buildx-cache-new/alpine | |
build-args: | | |
BASE_IMAGE=alpine:latest | |
- name: Move cache | |
run: | | |
rm -rf /tmp/.buildx-cache | |
mv /tmp/.buildx-cache-new /tmp/.buildx-cache | |
Build_Ubuntu: | |
runs-on: ubuntu-latest | |
needs: | |
- Unit_Tests | |
- Integration_Tests | |
steps: | |
# Checkout | |
- name: Checkout | |
uses: actions/checkout@v4 | |
# Buildkit setup | |
- uses: ./.github/actions/buildx-setup | |
# Docker hub login | |
- uses: ./.github/actions/docker-hub-login | |
with: | |
DOCKER_ACCESS_TOKEN: '${{ secrets.DOCKER_ACCESS_TOKEN }}' | |
- name: Cache Docker layers | |
uses: actions/cache@v4 | |
with: | |
path: /tmp/.buildx-cache | |
#key: ${{ runner.os }}-buildx-${{ hashFiles('**/Dockerfile') }} | |
key: ${{ runner.os }}-ubuntu-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-ubuntu- | |
- name: Build and push Ubuntu | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
push: true | |
tags: boky/postfix:edge-ubuntu | |
platforms: "linux/arm/v7,linux/amd64,linux/arm64,linux/ppc64le,linux/s390x" | |
cache-from: type=local,src=/tmp/.buildx-cache/ubuntu,mode=max,compression=estargz | |
cache-to: type=local,dest=/tmp/.buildx-cache-new/ubuntu | |
build-args: | | |
BASE_IMAGE=ubuntu:jammy | |
- name: Move cache | |
run: | | |
rm -rf /tmp/.buildx-cache | |
mv /tmp/.buildx-cache-new /tmp/.buildx-cache | |
Build_Debian: | |
runs-on: ubuntu-latest | |
needs: | |
- Unit_Tests | |
- Integration_Tests | |
steps: | |
# Checkout | |
- name: Checkout | |
uses: actions/checkout@v4 | |
# Buildkit setup | |
- uses: ./.github/actions/buildx-setup | |
# Docker hub login | |
- uses: ./.github/actions/docker-hub-login | |
with: | |
DOCKER_ACCESS_TOKEN: '${{ secrets.DOCKER_ACCESS_TOKEN }}' | |
- name: Cache Docker layers | |
uses: actions/cache@v4 | |
with: | |
path: /tmp/.buildx-cache | |
#key: ${{ runner.os }}-buildx-${{ hashFiles('**/Dockerfile') }} | |
key: ${{ runner.os }}-debian-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-debian- | |
- name: Build and push Debian | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
push: true | |
tags: boky/postfix:edge-debian | |
platforms: "linux/386,linux/arm/v5,linux/arm/v7,linux/arm64/v8,linux/amd64,linux/arm64,linux/mips64le,linux/ppc64le,linux/s390x" | |
cache-from: type=local,src=/tmp/.buildx-cache/debian,mode=max,compression=estargz | |
cache-to: type=local,dest=/tmp/.buildx-cache-new/debian | |
build-args: | | |
BASE_IMAGE=debian:bookworm-slim | |
- name: Move cache | |
run: | | |
rm -rf /tmp/.buildx-cache | |
mv /tmp/.buildx-cache-new /tmp/.buildx-cache | |