Woodpecker CI: Build armv7 Docker images

This commit is contained in:
Lain Soykaf 2026-05-03 21:19:24 +04:00
commit af175fbdfc
No known key found for this signature in database
3 changed files with 52 additions and 3 deletions

View file

@ -27,7 +27,7 @@ steps:
settings: &docker_settings settings: &docker_settings
registry: "git.pleroma.social" registry: "git.pleroma.social"
image: "pleroma/pleroma" image: "pleroma/pleroma"
architectures: [amd64, arm64] architectures: [amd64, arm64, armv7]
tags: tags:
- latest - latest
- develop - develop

View file

@ -11,6 +11,7 @@ when:
matrix: matrix:
platform: platform:
- linux/amd64 - linux/amd64
- linux/arm
- linux/arm64 - linux/arm64
# This is needed for the when clauses below. # This is needed for the when clauses below.
@ -27,6 +28,13 @@ variables:
password: password:
from_secret: pleroma-ci-password from_secret: pleroma-ci-password
kaniko_image: &kaniko_image woodpeckerci/plugin-kaniko:2.3.1 kaniko_image: &kaniko_image woodpeckerci/plugin-kaniko:2.3.1
# HexPM Elixir images are not published for arm/v7.
armv7_build_args: &armv7_build_args
- ELIXIR_IMG=arm32v7/elixir
- ELIXIR_TAG=1.17.3-alpine
- ALPINE_IMG=arm32v7/alpine
- ALPINE_VER=3.22
armv7_extra_opts: &armv7_extra_opts --custom-platform=linux/arm/v7
steps: steps:
docker-develop-amd64: docker-develop-amd64:
@ -51,6 +59,19 @@ steps:
- develop-arm64 - develop-arm64
- ${CI_COMMIT_SHA:0:8}-arm64 - ${CI_COMMIT_SHA:0:8}-arm64
docker-develop-armv7:
image: *kaniko_image
when:
- evaluate: 'platform == "linux/arm" && CI_COMMIT_BRANCH == "${CI_REPO_DEFAULT_BRANCH}"'
settings:
<<: *docker_variables
build_args: *armv7_build_args
extra_opts: *armv7_extra_opts
tags:
- latest-armv7
- develop-armv7
- ${CI_COMMIT_SHA:0:8}-armv7
docker-stable-amd64: docker-stable-amd64:
image: *kaniko_image image: *kaniko_image
when: when:
@ -84,6 +105,19 @@ steps:
- stable-arm64 - stable-arm64
- ${CI_COMMIT_SHA:0:8}-arm64 - ${CI_COMMIT_SHA:0:8}-arm64
docker-stable-armv7:
image: *kaniko_image
when:
- evaluate: 'platform == "linux/arm" && CI_PIPELINE_EVENT == "manual" && CI_COMMIT_BRANCH == "stable" && CI_COMMIT_TAG == ""'
settings:
<<: *docker_variables
build_args: *armv7_build_args
extra_opts: *armv7_extra_opts
tags: &armv7_tags
- latest-armv7
- stable-armv7
- ${CI_COMMIT_SHA:0:8}-armv7
docker-stable-tag-arm64: docker-stable-tag-arm64:
image: *kaniko_image image: *kaniko_image
when: when:
@ -94,3 +128,16 @@ steps:
tags: tags:
- <<: *arm64_tags - <<: *arm64_tags
- ${CI_COMMIT_TAG}-arm64 - ${CI_COMMIT_TAG}-arm64
docker-stable-tag-armv7:
image: *kaniko_image
when:
- evaluate: 'platform == "linux/arm" && CI_PIPELINE_EVENT == "tag"'
- evaluate: 'platform == "linux/arm" && CI_PIPELINE_EVENT == "manual" && CI_COMMIT_BRANCH == "stable" && CI_COMMIT_TAG != ""'
settings:
<<: *docker_variables
build_args: *armv7_build_args
extra_opts: *armv7_extra_opts
tags:
- <<: *armv7_tags
- ${CI_COMMIT_TAG}-armv7

View file

@ -3,8 +3,10 @@ ARG ELIXIR_IMG=hexpm/elixir
ARG ELIXIR_VER=1.17.3 ARG ELIXIR_VER=1.17.3
ARG ERLANG_VER=26.2.5.6 ARG ERLANG_VER=26.2.5.6
ARG ALPINE_VER=3.17.9 ARG ALPINE_VER=3.17.9
ARG ELIXIR_TAG=${ELIXIR_VER}-erlang-${ERLANG_VER}-alpine-${ALPINE_VER}
ARG ALPINE_IMG=alpine
FROM ${ELIXIR_IMG}:${ELIXIR_VER}-erlang-${ERLANG_VER}-alpine-${ALPINE_VER} AS build FROM ${ELIXIR_IMG}:${ELIXIR_TAG} AS build
COPY . . COPY . .
@ -20,7 +22,7 @@ RUN apk add git gcc g++ musl-dev make cmake file-dev vips-dev &&\
mkdir release &&\ mkdir release &&\
mix release --path release mix release --path release
FROM alpine:${ALPINE_VER} FROM ${ALPINE_IMG}:${ALPINE_VER}
ARG BUILD_DATE ARG BUILD_DATE
ARG VCS_REF ARG VCS_REF