Files
nginx-unit/.gitea/workflows/build.yml
Eugene Morozov a25e847062
All checks were successful
Build Docker Image / Build ARM64 (3.10) (push) Successful in 17m24s
Build Docker Image / Build ARM64 (3.11) (push) Successful in 17m2s
Build Docker Image / Build AMD64 (3.10) (push) Successful in 44m27s
Build Docker Image / Build ARM64 (3.12) (push) Successful in 17m2s
Build Docker Image / Build ARM64 (3.13) (push) Successful in 17m8s
Build Docker Image / Build AMD64 (3.11) (push) Successful in 43m36s
Build Docker Image / Build AMD64 (3.12) (push) Successful in 43m12s
Build Docker Image / Build AMD64 (3.13) (push) Successful in 43m5s
Build Docker Image / Create Multi-arch Manifest (3.10) (push) Successful in 13s
Build Docker Image / Create Multi-arch Manifest (3.11) (push) Successful in 11s
Build Docker Image / Create Multi-arch Manifest (3.12) (push) Successful in 11s
Build Docker Image / Create Multi-arch Manifest (3.13) (push) Successful in 12s
Bump unit to 1.34.1 and move to matrix
2025-01-25 09:59:16 +02:00

146 lines
5.0 KiB
YAML

name: Build Docker Image
on:
push:
branches:
- main
schedule:
- cron: '@monthly'
jobs:
build-amd64:
runs-on: linux_amd
name: Build AMD64
container:
image: catthehacker/ubuntu:act-latest
env:
RUNNER_TOOL_CACHE: /toolcache
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13']
outputs:
digest-3-10: ${{ steps.digest.outputs.DIGEST_3_10 }}
digest-3-11: ${{ steps.digest.outputs.DIGEST_3_11 }}
digest-3-12: ${{ steps.digest.outputs.DIGEST_3_12 }}
digest-3-13: ${{ steps.digest.outputs.DIGEST_3_13 }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
github-server-url: https://gitea.technocloud.ee
- name: Set up Docker BuildX
uses: docker/setup-buildx-action@v3
with:
platforms: linux/amd64
- name: Login to DockerHub
uses: docker/login-action@v3
with:
registry: gitea.technocloud.ee
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Get Meta
id: meta
run: |
echo "REPO_NAME=${GITHUB_REPOSITORY}" >> $GITHUB_OUTPUT
- name: Build and Push AMD64
id: build-docker
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile.python${{ matrix.python-version }}
platforms: linux/amd64
push: true
provenance: false
outputs: type=image,name=gitea.technocloud.ee/${{ steps.meta.outputs.REPO_NAME }},push-by-digest=true
- name: Summarize the Docker digest
id: digest
run: |
PY_VERSION=${{ matrix.python-version }}
PY_VERSION_MOD=$(echo $PY_VERSION | sed 's/\./_/g')
echo DIGEST_${PY_VERSION_MOD}="${{ steps.build-docker.outputs.digest }}" >> $GITHUB_OUTPUT
build-arm64:
runs-on: ubuntu-latest
name: Build ARM64
container:
image: catthehacker/ubuntu:act-latest
env:
RUNNER_TOOL_CACHE: /toolcache
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13']
outputs:
digest-3-10: ${{ steps.digest.outputs.DIGEST_3_10 }}
digest-3-11: ${{ steps.digest.outputs.DIGEST_3_11 }}
digest-3-12: ${{ steps.digest.outputs.DIGEST_3_12 }}
digest-3-13: ${{ steps.digest.outputs.DIGEST_3_13 }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
github-server-url: https://gitea.technocloud.ee
- name: Set up Docker BuildX
uses: docker/setup-buildx-action@v3
with:
platforms: linux/arm64
- name: Login to DockerHub
uses: docker/login-action@v3
with:
registry: gitea.technocloud.ee
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Get Meta
id: meta
run: |
echo "REPO_NAME=${GITHUB_REPOSITORY}" >> $GITHUB_OUTPUT
- name: Build and Push ARM64
id: build-docker
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile.python${{ matrix.python-version }}
platforms: linux/arm64
push: true
provenance: false
outputs: type=image,name=gitea.technocloud.ee/${{ steps.meta.outputs.REPO_NAME }},push-by-digest=true
- name: Summarize the Docker digest
id: digest
run: |
PY_VERSION=${{ matrix.python-version }}
PY_VERSION_MOD=$(echo $PY_VERSION | sed 's/\./_/g')
echo DIGEST_${PY_VERSION_MOD}="${{ steps.build-docker.outputs.digest }}"
echo DIGEST_${PY_VERSION_MOD}="${{ steps.build-docker.outputs.digest }}" >> $GITHUB_OUTPUT
create-manifest:
needs: [build-arm64, build-amd64]
runs-on: ubuntu-latest
name: Create Multi-arch Manifest
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13']
steps:
- name: Login to Docker Registry
uses: docker/login-action@v3
with:
registry: gitea.technocloud.ee
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Set up Docker BuildX
uses: docker/setup-buildx-action@v3
with:
driver: docker-container
- name: Get Repository Metadata
id: meta
run: |
echo "PACKAGE=gitea.technocloud.ee/${GITHUB_REPOSITORY}" >> $GITHUB_OUTPUT
echo "PY_VERSION=digest-$(echo ${{ matrix.python-version }} | sed 's/\./-/g')" >> $GITHUB_OUTPUT
- name: Create and Push Multi-arch Manifest
run: |
ARM_DIGEST=${{ needs.build-arm64.outputs[steps.meta.outputs.PY_VERSION] }}
AMD_DIGEST=${{ needs.build-amd64.outputs[steps.meta.outputs.PY_VERSION] }}
IMAGE_NAME=${{ steps.meta.outputs.PACKAGE }}:python${{ matrix.python-version }}
docker manifest create $IMAGE_NAME --amend ${{ steps.meta.outputs.PACKAGE }}@${ARM_DIGEST} --amend ${{ steps.meta.outputs.PACKAGE }}@${AMD_DIGEST}
docker manifest push $IMAGE_NAME