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@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: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@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