Forgejo Runner v13: changes that can break your workflows
Section titled “Forgejo Runner v13: changes that can break your workflows”We have upgraded the runners of STACKIT Git to Forgejo Runner v13. This release makes expression evaluation stricter, removes legacy workflow commands, limits registry credentials to the job that declares them, and removes the remaining Gitea compatibility. Several cases that used to log a warning now fail the run, so check your workflows for the changes below.
Invalid expressions and matrices fail the run
Section titled “Invalid expressions and matrices fail the run”An expression that cannot be evaluated, such as a format() call with fewer arguments than its format string references, now fails the step or job instead of logging a warning. Attempting to exclude a value from a matrix that was never defined in that matrix now causes an error and prevents the workflow from running.
Check the expressions and matrix definitions in your workflow files.
Legacy workflow commands are removed
Section titled “Legacy workflow commands are removed”The ::set-output, ::set-env and ::add-path commands no longer have any effect, and ACTIONS_ALLOW_UNSECURE_COMMANDS does not enable them again. Write to the environment files instead:
- Replace
echo "::set-output name=var::value"withecho "var=value" >> "$FORGEJO_OUTPUT". - Replace
echo "::set-env name=VAR::value"withecho "VAR=value" >> "$FORGEJO_ENV". - Replace
echo "::add-path::/custom/bin"withecho "/custom/bin" >> "$FORGEJO_PATH".
Registry credentials are declared per job
Section titled “Registry credentials are declared per job”The runner no longer logs in to registries with the DOCKER_USERNAME and DOCKER_PASSWORD secrets, because these credentials could be sent to a registry they were not meant for. If a job uses an image from a private registry, declare the credentials in that job:
jobs: build: container: image: private.registry.example/app:latest credentials: username: ${{ secrets.REGISTRY_USER }} password: ${{ secrets.REGISTRY_TOKEN }}Gitea compatibility is removed
Section titled “Gitea compatibility is removed”The ${{ gitea.* }} context is no longer supported. Replace it with ${{ forgejo.* }} in your workflows.
Steps no longer run in a terminal
Section titled “Steps no longer run in a terminal”The runner no longer attaches a terminal to the output of a step. Commands that print colors only when they detect a terminal now print plain text. To get colored output again, set FORCE_COLOR=1. Commands that require a terminal will now fail. For example, replace docker run -it with docker run -i.
If you operate your own runners
Section titled “If you operate your own runners”- Docker Engine 25.0 or later is required. We recommend 28.0.1 or later, because earlier versions can fail to create IPv6 networks with Forgejo Runner v13.
- The
GITEA_DEBUG,GITEA_TRACE,GITEA_RUNNER_CAPACITY,GITEA_RUNNER_FILE,GITEA_RUNNER_ENVIRONandGITEA_RUNNER_ENV_FILEvariables are ignored. Remove them from your runner configuration and environment. - The
container.network_modeoption is removed. Usecontainer.networkinstead.
For more details, see the release announcement of Forgejo Runner v13.0 and the release notes of Forgejo Runner.
If you have any questions, feel free to contact our Help Center.