Upgrading
Stop the runner, replace the binary or image, and start it again. The registration file stays valid, so you do not need to register the runner again.
sudo systemctl stop gitea-runnersudo install -m 0755 gitea-runner-<version>-linux-amd64 /usr/local/bin/gitea-runnersudo systemctl start gitea-runnerStopping the runner cancels running jobs unless runner.shutdown_timeout gives them time to finish. The runner logs a warning for unknown configuration keys and ignores them. Run gitea-runner config generate to list all configuration options.
Breaking changes in 5.0
Section titled “Breaking changes in 5.0”- Git 2.34.1 or later is required on the runner and in job images that use
builtin:checkout. builtin:checkoutworks likeactions/checkout. It removes untracked and ignored files unlessclean: falseis set. It fails if the triggering tag moved after the workflow started.- Configuration values expand
${NAME}from the runner’s environment. The configuration fails to load ifNAMEis unset. Write$${NAME}for a literal${NAME}, for example in a shell command in a Kubernetespod_template. - Jobs require
runs-on. A job withoutruns-onfails, as it does on GitHub. Jobs that call a reusable workflow are exempt. - OpenTelemetry metrics follow the semantic conventions, which changed their names, units and attributes. See telemetry.md. On
/metrics,gitea_runner_client_errors_totalgained acodelabel, andgitea_runner_job_totalcounts jobs stopped byrunner.timeoutastimeout. - Unprivileged runners drop more workflow options. Unless
container.privilegedis set,--log-driver,--log-opt,--oom-score-adjand--oom-kill-disableare removed from a job’scontainer.optionswith a warning.
Release notes for every version are on the release page.