From 63c0ccda395931b8f14faa8a93eb2f7889ad3e83 Mon Sep 17 00:00:00 2001 From: Alexey Pustovalov Date: Sat, 13 Jun 2026 12:10:48 +0900 Subject: [PATCH] Trying to avoid operation cancelled --- .github/workflows/images_build.yml | 15 +++++++++++++++ Dockerfiles/build-mysql/alpine/Dockerfile | 3 ++- Dockerfiles/build-mysql/centos/Dockerfile | 3 ++- Dockerfiles/build-mysql/ol/Dockerfile | 3 ++- Dockerfiles/build-mysql/rhel/Dockerfile | 3 ++- Dockerfiles/build-mysql/ubuntu/Dockerfile | 3 ++- Dockerfiles/build-pgsql/alpine/Dockerfile | 3 ++- Dockerfiles/build-pgsql/centos/Dockerfile | 3 ++- Dockerfiles/build-pgsql/ol/Dockerfile | 3 ++- Dockerfiles/build-pgsql/rhel/Dockerfile | 3 ++- Dockerfiles/build-pgsql/ubuntu/Dockerfile | 3 ++- Dockerfiles/build-sqlite3/alpine/Dockerfile | 3 ++- Dockerfiles/build-sqlite3/centos/Dockerfile | 3 ++- Dockerfiles/build-sqlite3/ol/Dockerfile | 3 ++- Dockerfiles/build-sqlite3/rhel/Dockerfile | 3 ++- Dockerfiles/build-sqlite3/ubuntu/Dockerfile | 3 ++- 16 files changed, 45 insertions(+), 15 deletions(-) diff --git a/.github/workflows/images_build.yml b/.github/workflows/images_build.yml index fbe84de8..a1dcb32d 100644 --- a/.github/workflows/images_build.yml +++ b/.github/workflows/images_build.yml @@ -483,6 +483,20 @@ jobs: docker_username: ${{ secrets.DOCKER_USERNAME }} docker_password: ${{ secrets.DOCKER_PASSWORD }} + - name: Compute build parallelism + id: jobs + env: + PLATFORMS: ${{ steps.platform.outputs.list }} + run: | + # Multi-arch QEMU builds compile all platforms concurrently, so peak memory + # scales as platform_count * (make -j). Cap total concurrent compilers near the + # runner vCPU count to avoid OOM-induced runner shutdowns ("operation canceled"). + count=$(( $(printf '%s' "$PLATFORMS" | tr -cd ',' | wc -c) + 1 )) + jobs=$(( 4 / count )) + [ "$jobs" -lt 1 ] && jobs=1 + echo "Platforms: $PLATFORMS -> BUILD_JOBS=$jobs" + echo "jobs=$jobs" >> "$GITHUB_OUTPUT" + - name: Build ${{ matrix.build }}/${{ matrix.os }} and push id: docker_build uses: ./.github/actions/docker-build-push-linux @@ -498,6 +512,7 @@ jobs: config_templates=./templates/config/ build_args: | BUILD_BASE_IMAGE=${{ steps.base_build.outputs.base_build_image }} + BUILD_JOBS=${{ steps.jobs.outputs.jobs }} labels: | org.opencontainers.image.revision=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }} org.opencontainers.image.created=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }} diff --git a/Dockerfiles/build-mysql/alpine/Dockerfile b/Dockerfiles/build-mysql/alpine/Dockerfile index 56037299..df4d1c6a 100644 --- a/Dockerfiles/build-mysql/alpine/Dockerfile +++ b/Dockerfiles/build-mysql/alpine/Dockerfile @@ -4,6 +4,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:alpine-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG ZBX_VERSION @@ -114,7 +115,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \ diff --git a/Dockerfiles/build-mysql/centos/Dockerfile b/Dockerfiles/build-mysql/centos/Dockerfile index a01f5ee9..f356aacb 100644 --- a/Dockerfiles/build-mysql/centos/Dockerfile +++ b/Dockerfiles/build-mysql/centos/Dockerfile @@ -4,6 +4,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:centos-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG ZBX_VERSION @@ -114,7 +115,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \ diff --git a/Dockerfiles/build-mysql/ol/Dockerfile b/Dockerfiles/build-mysql/ol/Dockerfile index 2a943c69..1681d28b 100644 --- a/Dockerfiles/build-mysql/ol/Dockerfile +++ b/Dockerfiles/build-mysql/ol/Dockerfile @@ -4,6 +4,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:ol-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG ZBX_VERSION @@ -114,7 +115,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \ diff --git a/Dockerfiles/build-mysql/rhel/Dockerfile b/Dockerfiles/build-mysql/rhel/Dockerfile index ebd22cdd..d9c4af4e 100644 --- a/Dockerfiles/build-mysql/rhel/Dockerfile +++ b/Dockerfiles/build-mysql/rhel/Dockerfile @@ -5,6 +5,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:rhel-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG RELEASE @@ -124,7 +125,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \ diff --git a/Dockerfiles/build-mysql/ubuntu/Dockerfile b/Dockerfiles/build-mysql/ubuntu/Dockerfile index f69a1246..dc0d6b67 100644 --- a/Dockerfiles/build-mysql/ubuntu/Dockerfile +++ b/Dockerfiles/build-mysql/ubuntu/Dockerfile @@ -4,6 +4,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:ubuntu-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG ZBX_VERSION @@ -114,7 +115,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \ diff --git a/Dockerfiles/build-pgsql/alpine/Dockerfile b/Dockerfiles/build-pgsql/alpine/Dockerfile index 1ca56cf8..e1cf2f74 100644 --- a/Dockerfiles/build-pgsql/alpine/Dockerfile +++ b/Dockerfiles/build-pgsql/alpine/Dockerfile @@ -4,6 +4,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:alpine-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG ZBX_VERSION @@ -116,7 +117,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \ diff --git a/Dockerfiles/build-pgsql/centos/Dockerfile b/Dockerfiles/build-pgsql/centos/Dockerfile index 568aadad..9fd567be 100644 --- a/Dockerfiles/build-pgsql/centos/Dockerfile +++ b/Dockerfiles/build-pgsql/centos/Dockerfile @@ -4,6 +4,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:centos-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG ZBX_VERSION @@ -116,7 +117,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \ diff --git a/Dockerfiles/build-pgsql/ol/Dockerfile b/Dockerfiles/build-pgsql/ol/Dockerfile index 033b63bc..fa968e5f 100644 --- a/Dockerfiles/build-pgsql/ol/Dockerfile +++ b/Dockerfiles/build-pgsql/ol/Dockerfile @@ -4,6 +4,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:ol-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG ZBX_VERSION @@ -116,7 +117,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \ diff --git a/Dockerfiles/build-pgsql/rhel/Dockerfile b/Dockerfiles/build-pgsql/rhel/Dockerfile index 0598158a..9e61404b 100644 --- a/Dockerfiles/build-pgsql/rhel/Dockerfile +++ b/Dockerfiles/build-pgsql/rhel/Dockerfile @@ -5,6 +5,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:rhel-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG RELEASE @@ -127,7 +128,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \ diff --git a/Dockerfiles/build-pgsql/ubuntu/Dockerfile b/Dockerfiles/build-pgsql/ubuntu/Dockerfile index 91051b5b..fed3a06f 100644 --- a/Dockerfiles/build-pgsql/ubuntu/Dockerfile +++ b/Dockerfiles/build-pgsql/ubuntu/Dockerfile @@ -4,6 +4,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:ubuntu-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG ZBX_VERSION @@ -116,7 +117,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \ diff --git a/Dockerfiles/build-sqlite3/alpine/Dockerfile b/Dockerfiles/build-sqlite3/alpine/Dockerfile index 88c0a051..0091e37b 100644 --- a/Dockerfiles/build-sqlite3/alpine/Dockerfile +++ b/Dockerfiles/build-sqlite3/alpine/Dockerfile @@ -4,6 +4,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:alpine-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG ZBX_VERSION @@ -107,7 +108,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \ diff --git a/Dockerfiles/build-sqlite3/centos/Dockerfile b/Dockerfiles/build-sqlite3/centos/Dockerfile index 77ab3c5a..c4fa57b5 100644 --- a/Dockerfiles/build-sqlite3/centos/Dockerfile +++ b/Dockerfiles/build-sqlite3/centos/Dockerfile @@ -4,6 +4,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:centos-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG ZBX_VERSION @@ -107,7 +108,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \ diff --git a/Dockerfiles/build-sqlite3/ol/Dockerfile b/Dockerfiles/build-sqlite3/ol/Dockerfile index 69f88b6c..3d9d1b17 100644 --- a/Dockerfiles/build-sqlite3/ol/Dockerfile +++ b/Dockerfiles/build-sqlite3/ol/Dockerfile @@ -4,6 +4,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:ol-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG ZBX_VERSION @@ -107,7 +108,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \ diff --git a/Dockerfiles/build-sqlite3/rhel/Dockerfile b/Dockerfiles/build-sqlite3/rhel/Dockerfile index b0becdb5..71e42595 100644 --- a/Dockerfiles/build-sqlite3/rhel/Dockerfile +++ b/Dockerfiles/build-sqlite3/rhel/Dockerfile @@ -5,6 +5,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:rhel-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG RELEASE @@ -118,7 +119,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \ diff --git a/Dockerfiles/build-sqlite3/ubuntu/Dockerfile b/Dockerfiles/build-sqlite3/ubuntu/Dockerfile index 470b9d2e..a22d9661 100644 --- a/Dockerfiles/build-sqlite3/ubuntu/Dockerfile +++ b/Dockerfiles/build-sqlite3/ubuntu/Dockerfile @@ -4,6 +4,7 @@ ARG ZBX_VERSION=${MAJOR_VERSION}.11 ARG BUILD_BASE_IMAGE=zabbix-build-base:ubuntu-${ZBX_VERSION} FROM ${BUILD_BASE_IMAGE} AS builder +ARG BUILD_JOBS ARG MAJOR_VERSION ARG ZBX_VERSION @@ -107,7 +108,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \ --with-ssh \ --with-unixodbc \ --silent && \ - jobs="$(nproc)" && \ + jobs="${BUILD_JOBS:-$(nproc)}" && \ make -j"${jobs}" -s dbschema && \ make -j"${jobs}" -s && \ make -j"${jobs}" -s gettext && \