Fix: Install packages only if available on said architecture. #233
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: | | |
if command -v update-binfmts; then update-binfmts --enable; fi | |
- name: Build and push Alpine | |
uses: docker/build-push-action@v6 | |
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@v6 | |
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:noble | |
- 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@v6 | |
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 | |