Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package forgejo-runner for openSUSE:Factory checked in at 2025-12-12 21:43:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/forgejo-runner (Old) and /work/SRC/openSUSE:Factory/.forgejo-runner.new.1939 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "forgejo-runner" Fri Dec 12 21:43:10 2025 rev:34 rq:1322616 version:12.1.2 Changes: -------- --- /work/SRC/openSUSE:Factory/forgejo-runner/forgejo-runner.changes 2025-12-08 11:56:01.878708533 +0100 +++ /work/SRC/openSUSE:Factory/.forgejo-runner.new.1939/forgejo-runner.changes 2025-12-12 21:44:28.621183814 +0100 @@ -1,0 +2,7 @@ +Sun Dec 7 23:45:18 UTC 2025 - Richard Rahl <[email protected]> + +- Update to version 12.1.2: + * fix: "incorrect container platform option 'any'" on docker >28.1 w/ remote + docker actions + +------------------------------------------------------------------- Old: ---- forgejo-runner-12.1.1.obscpio New: ---- forgejo-runner-12.1.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ forgejo-runner.spec ++++++ --- /var/tmp/diff_new_pack.fJpbmW/_old 2025-12-12 21:44:29.401216724 +0100 +++ /var/tmp/diff_new_pack.fJpbmW/_new 2025-12-12 21:44:29.405216893 +0100 @@ -19,7 +19,7 @@ %define services %{name}.service Name: forgejo-runner -Version: 12.1.1 +Version: 12.1.2 Release: 0 Summary: Daemon that connects to a Forgejo instance and runs CI jobs License: GPL-3.0-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.fJpbmW/_old 2025-12-12 21:44:29.437218243 +0100 +++ /var/tmp/diff_new_pack.fJpbmW/_new 2025-12-12 21:44:29.441218412 +0100 @@ -2,7 +2,7 @@ <service name="obs_scm" mode="manual"> <param name="url">https://code.forgejo.org/forgejo/runner</param> <param name="scm">git</param> - <param name="revision">refs/tags/v12.1.1</param> + <param name="revision">refs/tags/v12.1.2</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">disable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ forgejo-runner-12.1.1.obscpio -> forgejo-runner-12.1.2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/forgejo-runner-12.1.1/.forgejo/install-docker.sh new/forgejo-runner-12.1.2/.forgejo/install-docker.sh --- old/forgejo-runner-12.1.1/.forgejo/install-docker.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/forgejo-runner-12.1.2/.forgejo/install-docker.sh 2025-12-06 22:59:51.000000000 +0100 @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +set -eu -o pipefail + +DOCKER_VERSION="$1" + +if [[ "$DOCKER_VERSION" == "stable" ]]; +then + echo "Installing Docker from Debian's stable apt packages." + apt-get install -y -qq docker.io + +elif [[ "$DOCKER_VERSION" == "latest" ]]; +then + echo "Installing Docker from Docker's latest apt packages." + + # Derived from Docker's official debian installation documentation: https://docs.docker.com/engine/install/debian/#install-using-the-repository + # Add Docker's official GPG key: + apt-get update + apt-get install -y -qq ca-certificates curl + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc + chmod a+r /etc/apt/keyrings/docker.asc + + # Add the repository to Apt sources: + tee /etc/apt/sources.list.d/docker.sources <<EOF +Types: deb +URIs: https://download.docker.com/linux/debian +Suites: $(. /etc/os-release && echo "$VERSION_CODENAME") +Components: stable +Signed-By: /etc/apt/keyrings/docker.asc +EOF + + apt-get update + apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin + +else + echo "unknown docker" + exit 1 + +fi + +docker info diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/forgejo-runner-12.1.1/.forgejo/workflows/test.yml new/forgejo-runner-12.1.2/.forgejo/workflows/test.yml --- old/forgejo-runner-12.1.1/.forgejo/workflows/test.yml 2025-12-05 14:31:14.000000000 +0100 +++ new/forgejo-runner-12.1.2/.forgejo/workflows/test.yml 2025-12-06 22:59:51.000000000 +0100 @@ -108,7 +108,7 @@ ] } EOF - apt --quiet install --yes -qq docker.io + apt-get install -y -qq docker.io - name: forgejo-runner exec --enable-ipv6 run: | @@ -127,9 +127,14 @@ grep --quiet 'Success - Main echo "VAR -> testvariable"' /tmp/var.out integration-tests: - name: integration tests + name: integration tests (docker-${{ matrix.docker }}) if: vars.ROLE == 'forgejo-coding' runs-on: lxc-bookworm + strategy: + matrix: + docker: + - stable # docker version distributed by Debian + - latest # latest stable version of docker distributed by Docker steps: - uses: https://data.forgejo.org/actions/checkout@v5 @@ -137,14 +142,16 @@ with: go-version-file: go.mod + - name: install docker + run: ./.forgejo/install-docker.sh ${{ matrix.docker }} + - name: apt install run: | export DEBIAN_FRONTEND=noninteractive apt-get update -qq # qemu & binfmt -- for mixed architecture testing # gcc -- for `go test -race` - apt-get -q install -qq -y \ - docker.io \ + apt-get install -qq -y \ qemu-user-static binfmt-support \ gcc @@ -189,14 +196,14 @@ ] } EOF - apt --quiet install --yes -qq docker.io make + apt-get install -y -qq docker.io make - name: install LXC run: | act/runner/lxc-helpers.sh lxc_prepare_environment act/runner/lxc-helpers.sh lxc_install_lxc_inside 10.39.28 fdb1 - - run: apt-get -q install -qq -y gcc # required for `-race` + - run: apt-get install -y -qq gcc # required for `-race` - run: make integration-test @@ -247,7 +254,7 @@ PIP_PROGRESS_BAR: off run: | apt-get update -qq - apt-get -q install -qq -y python3-pip + apt-get install -y -qq python3-pip python3 -m pip install 'pre-commit>=3.2.0' - name: validate .pre-commit-hooks.yaml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/forgejo-runner-12.1.1/act/container/docker_pull.go new/forgejo-runner-12.1.2/act/container/docker_pull.go --- old/forgejo-runner-12.1.1/act/container/docker_pull.go 2025-12-05 14:31:14.000000000 +0100 +++ new/forgejo-runner-12.1.2/act/container/docker_pull.go 2025-12-06 22:59:51.000000000 +0100 @@ -21,7 +21,7 @@ // atomic isn't "really" needed, but its used to avoid the data race detector causing errors. var cachedSystemPlatform atomic.Pointer[string] -func currentSystemPlatform(ctx context.Context) (string, error) { +func CurrentSystemPlatform(ctx context.Context) (string, error) { lastCache := cachedSystemPlatform.Load() if lastCache != nil { return *lastCache, nil diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/forgejo-runner-12.1.1/act/container/docker_run.go new/forgejo-runner-12.1.2/act/container/docker_run.go --- old/forgejo-runner-12.1.1/act/container/docker_run.go 2025-12-05 14:31:14.000000000 +0100 +++ new/forgejo-runner-12.1.2/act/container/docker_run.go 2025-12-06 22:59:51.000000000 +0100 @@ -68,7 +68,7 @@ if platform == "" { // cr.input.DefaultPlatform wasn't provided, --platform wasn't provided, fallback to the system platform - defaultPlatform, err := currentSystemPlatform(ctx) + defaultPlatform, err := CurrentSystemPlatform(ctx) if err != nil { return "", err } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/forgejo-runner-12.1.1/act/runner/action.go new/forgejo-runner-12.1.2/act/runner/action.go --- old/forgejo-runner-12.1.1/act/runner/action.go 2025-12-05 14:31:14.000000000 +0100 +++ new/forgejo-runner-12.1.2/act/runner/action.go 2025-12-06 22:59:51.000000000 +0100 @@ -281,6 +281,15 @@ rc := step.getRunContext() action := step.getActionModel() + targetPlatform := rc.Config.ContainerArchitecture + if targetPlatform == "" { + currentSystemPlatform, err := container.CurrentSystemPlatform(ctx) + if err != nil { + return fmt.Errorf("unable to evaluate current system architecture: %w", err) + } + targetPlatform = currentSystemPlatform + } + var prepImage common.Executor var image string forcePull := false @@ -296,28 +305,13 @@ } contextDir, fileName := filepath.Split(filepath.Join(basedir, action.Runs.Image)) - anyArchExists, err := container.ImageExistsLocally(ctx, image, "any") - if err != nil { - return err - } - - correctArchExists, err := container.ImageExistsLocally(ctx, image, rc.Config.ContainerArchitecture) + imageExists, err := container.ImageExistsLocally(ctx, image, targetPlatform) if err != nil { return err } - if anyArchExists && !correctArchExists { - wasRemoved, err := container.RemoveImage(ctx, image, true, true) - if err != nil { - return err - } - if !wasRemoved { - return fmt.Errorf("failed to remove image '%s'", image) - } - } - - if !correctArchExists || rc.Config.ForceRebuild { - logger.Debugf("image '%s' for architecture '%s' will be built from context '%s", image, rc.Config.ContainerArchitecture, contextDir) + if !imageExists || rc.Config.ForceRebuild { + logger.Debugf("image '%s' for architecture '%s' will be built from context '%s", image, targetPlatform, contextDir) var buildContext io.ReadCloser if localAction { buildContext, err = rc.JobContainer.GetContainerArchive(ctx, contextDir+"/.") @@ -331,10 +325,10 @@ Dockerfile: fileName, ImageTag: image, BuildContext: buildContext, - Platform: rc.Config.ContainerArchitecture, + Platform: targetPlatform, }) } else { - logger.Debugf("image '%s' for architecture '%s' already exists", image, rc.Config.ContainerArchitecture) + logger.Debugf("image '%s' for architecture '%s' already exists", image, targetPlatform) } } eval := rc.NewStepExpressionEvaluator(ctx, step) @@ -357,7 +351,7 @@ entrypoint = nil } } - stepContainer := newStepContainer(ctx, step, image, cmd, entrypoint) + stepContainer := newStepContainer(ctx, step, image, cmd, entrypoint, targetPlatform) return common.NewPipelineExecutor( prepImage, stepContainer.Pull(forcePull), @@ -398,7 +392,7 @@ } } -func newStepContainer(ctx context.Context, step step, image string, cmd, entrypoint []string) container.Container { +func newStepContainer(ctx context.Context, step step, image string, cmd, entrypoint []string, targetPlatform string) container.Container { rc := step.getRunContext() stepModel := step.getStepModel() rawLogger := common.Logger(ctx).WithField("raw_output", true) @@ -442,7 +436,7 @@ Stderr: logWriter, Privileged: rc.Config.Privileged, UsernsMode: rc.Config.UsernsMode, - DefaultPlatform: rc.Config.ContainerArchitecture, + DefaultPlatform: targetPlatform, ValidVolumes: validVolumes, ConfigOptions: rc.Config.ContainerOptions, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/forgejo-runner-12.1.1/act/runner/runner_test.go new/forgejo-runner-12.1.2/act/runner/runner_test.go --- old/forgejo-runner-12.1.1/act/runner/runner_test.go 2025-12-05 14:31:14.000000000 +0100 +++ new/forgejo-runner-12.1.2/act/runner/runner_test.go 2025-12-06 22:59:51.000000000 +0100 @@ -479,7 +479,7 @@ ctx := common.WithLoggerHook(t.Context(), h) jobLoggerLevel := log.InfoLevel - tjfi.runTest(ctx, t, &Config{ContainerArchitecture: "linux/arm64", JobLoggerLevel: &jobLoggerLevel}) + tjfi.runTest(ctx, t, &Config{JobLoggerLevel: &jobLoggerLevel}) assert.True(t, h.found) }) ++++++ forgejo-runner.obsinfo ++++++ --- /var/tmp/diff_new_pack.fJpbmW/_old 2025-12-12 21:44:31.481304485 +0100 +++ /var/tmp/diff_new_pack.fJpbmW/_new 2025-12-12 21:44:31.497305159 +0100 @@ -1,5 +1,5 @@ name: forgejo-runner -version: 12.1.1 -mtime: 1764941474 -commit: d281682321393925f4f9dcc1292a0bb678752064 +version: 12.1.2 +mtime: 1765058391 +commit: 01e6bada25e034a2db14f358ddb90631dcab193a ++++++ vendor.tar.gz ++++++
