Skip to content

Commit

Permalink
Parallel multi-arch build
Browse files Browse the repository at this point in the history
  • Loading branch information
csandanov committed Jan 29, 2025
1 parent 1aaa46f commit c608ae8
Show file tree
Hide file tree
Showing 5 changed files with 268 additions and 118 deletions.
52 changes: 28 additions & 24 deletions .github/actions/action.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,36 @@
name: Build
description: Build mariadb image
name: push
description: combine multi-arch image and push
inputs:
version:
description: version
required: true
tags:
description: image tags
required: true
workdir:
description: working directory
required: true
platform:
description: docker platform
latest:
description: if tag latest
required: false
default: linux/amd64
runs:
using: "composite"
steps:
- name: Build image
env:
MARIADB_VER: ${{ inputs.version }}
TAGS: ${{ inputs.tags }}
PLATFORM: ${{ inputs.platform }}
run: |
set -e
make buildx-build-amd64
make test
make buildx-build
. $GITHUB_ACTION_PATH/release.sh
shell: bash
working-directory: ${{ inputs.workdir }}
- name: Build image
env:
VERSION: ${{ inputs.version }}
LATEST: ${{ inputs.latest }}
run: |
if [[ "${GITHUB_REF}" == refs/heads/main || "${GITHUB_REF}" == refs/tags/* ]]; then
minor_ver="${VERSION%.*}"
major_ver="${minor_ver%.*}"
tags=("${minor_ver}" "${major_ver}")
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
stability_tag=("${GITHUB_REF##*/}")
tags=("${minor_ver}-${stability_tag}" "${major_ver}-${stability_tag}")
else
if [[ -n "${LATEST}" ]]; then
tags+=("latest")
fi
fi
for tag in "${tags[@]}"; do
TAG=${tag} make buildx-imagetools-create
done
fi
shell: bash
17 changes: 0 additions & 17 deletions .github/actions/release.sh

This file was deleted.

273 changes: 225 additions & 48 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,63 +10,240 @@ on:

env:
BASE_IMAGE_STABILITY_TAG: 2.15.5
MARIADB114: '11.4.4'
MARIADB1011: '10.11.10'
MARIADB106: '10.6.20'
MARIADB105: '10.5.27'
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}

jobs:
mariadb-114:
mariadb114-build:
strategy:
matrix:
platform:
- linux/amd64
- linux/arm64
include:
- platform: linux/amd64
runner: ubuntu-24.04
arch: amd64
- platform: linux/arm64
runner: ubuntu-24.04-arm
arch: arm64
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: docker/setup-buildx-action@v3
- name: build and push
env:
MARIADB_VER: ${{ env.MARIADB114 }}
TAG: 11.4-${{ matrix.arch }}
PLATFORM: ${{ matrix.platform }}
run: |
make buildx-build
make buildx-push
mariadb114-push:
runs-on: ubuntu-latest
needs:
- mariadb114-build
steps:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: ./.github/actions
with:
version: ${{ env.MARIADB114 }}
latest: true

mariadb1011-build:
strategy:
matrix:
platform:
- linux/amd64
- linux/arm64
include:
- platform: linux/amd64
runner: ubuntu-24.04
arch: amd64
- platform: linux/arm64
runner: ubuntu-24.04-arm
arch: arm64
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
with:
platforms: amd64,arm64
- uses: docker/setup-buildx-action@v3
- uses: ./.github/actions
with:
version: '11.4.4'
tags: '11.4,11,latest'
workdir: 11
platform: linux/amd64,linux/arm64
mariadb-1011:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: docker/setup-buildx-action@v3
- name: build and push
env:
MARIADB_VER: ${{ env.MARIADB1011 }}
TAG: 10.11-${{ matrix.arch }}
PLATFORM: ${{ matrix.platform }}
run: |
make buildx-build
make buildx-push
mariadb1011-push:
runs-on: ubuntu-latest
needs:
- mariadb1011-build
steps:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: ./.github/actions
with:
version: ${{ env.MARIADB1011 }}

mariadb106-build:
strategy:
matrix:
platform:
- linux/amd64
- linux/arm64
include:
- platform: linux/amd64
runner: ubuntu-24.04
arch: amd64
- platform: linux/arm64
runner: ubuntu-24.04-arm
arch: arm64
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
with:
platforms: amd64,arm64
- uses: docker/setup-buildx-action@v3
- uses: ./.github/actions
with:
version: '10.11.10'
tags: '10.11,10'
workdir: 10
platform: linux/amd64,linux/arm64
mariadb-106:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: docker/setup-buildx-action@v3
- name: build and push
env:
MARIADB_VER: ${{ env.MARIADB106 }}
TAG: 10.6-${{ matrix.arch }}
PLATFORM: ${{ matrix.platform }}
run: |
make buildx-build
make buildx-push
mariadb106-push:
runs-on: ubuntu-latest
needs:
- mariadb106-build
steps:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: ./.github/actions
with:
version: ${{ env.MARIADB106 }}

mariadb105-build:
strategy:
matrix:
platform:
- linux/amd64
- linux/arm64
include:
- platform: linux/amd64
runner: ubuntu-24.04
arch: amd64
- platform: linux/arm64
runner: ubuntu-24.04-arm
arch: arm64
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
with:
platforms: amd64,arm64
- uses: docker/setup-buildx-action@v3
- uses: ./.github/actions
with:
version: '10.6.20'
tags: '10.6'
workdir: 10
platform: linux/amd64,linux/arm64
mariadb-105:
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: docker/setup-buildx-action@v3
- name: build and push
env:
MARIADB_VER: ${{ env.MARIADB105 }}
TAG: 10.5-${{ matrix.arch }}
PLATFORM: ${{ matrix.platform }}
run: |
make buildx-build
make buildx-push
mariadb105-push:
runs-on: ubuntu-latest
needs:
- mariadb105-build
steps:
- uses: actions/checkout@v4
- uses: docker/[email protected]
with:
platforms: amd64,arm64
- uses: docker/setup-buildx-action@v3
- uses: ./.github/actions
with:
version: '10.5.27'
tags: '10.5'
workdir: 10
platform: linux/amd64,linux/arm64
- uses: actions/checkout@v4
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: ./.github/actions
with:
version: ${{ env.MARIADB105 }}

# mariadb-114:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: docker/setup-qemu-action@v3
# with:
# platforms: amd64,arm64
# - uses: docker/setup-buildx-action@v3
# - uses: ./.github/actions
# with:
# version: '11.4.4'
# tags: '11.4,11,latest'
# workdir: 11
# platform: linux/amd64,linux/arm64
# mariadb-1011:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: docker/setup-qemu-action@v3
# with:
# platforms: amd64,arm64
# - uses: docker/setup-buildx-action@v3
# - uses: ./.github/actions
# with:
# version: '10.11.10'
# tags: '10.11,10'
# workdir: 10
# platform: linux/amd64,linux/arm64
# mariadb-106:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: docker/setup-qemu-action@v3
# with:
# platforms: amd64,arm64
# - uses: docker/setup-buildx-action@v3
# - uses: ./.github/actions
# with:
# version: '10.6.20'
# tags: '10.6'
# workdir: 10
# platform: linux/amd64,linux/arm64
# mariadb-105:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: docker/[email protected]
# with:
# platforms: amd64,arm64
# - uses: docker/setup-buildx-action@v3
# - uses: ./.github/actions
# with:
# version: '10.5.27'
# tags: '10.5'
# workdir: 10
# platform: linux/amd64,linux/arm64
Loading

0 comments on commit c608ae8

Please sign in to comment.