Update the runner reference pages (#501)

Automated update of the generated runner reference pages from gitea/runner (main for the develop docs, the newest stable tag for every documented series), opened by the "update runner reference" scheduled workflow.

<!-- cloudflare-preview --> Preview: https://pr-501.docs-gitea-com.pages.dev

Reviewed-on: https://gitea.com/gitea/docs/pulls/501
Reviewed-by: Lunny Xiao <[email protected]>
Co-authored-by: Gitea Bot <[email protected]>
This commit is contained in:
Gitea Bot
2026-08-10 05:15:06 +00:00
committed by Lunny Xiao
parent efd26a3d61
commit 12ca5a0a73
4 changed files with 161 additions and 158 deletions
+9 -9
View File
@@ -22,14 +22,14 @@ Usage:
Available Commands: Available Commands:
bug-report Print information useful when filing a bug report bug-report Print information useful when filing a bug report
cache-server Start a cache server for the cache action cache-server Start a cache server for the cache action
config Generate, read and edit config files
daemon Run as a runner daemon daemon Run as a runner daemon
exec Run workflow locally. exec Run workflow locally.
generate-config Generate an example config file
help Help about any command help Help about any command
register Register a runner to the server register Register a runner to the server
Flags: Flags:
-c, --config string Config file path -c, --config config Config file path. config subcommands fall back to config.yaml in the working directory or next to the executable
-h, --help help for gitea-runner -h, --help help for gitea-runner
-v, --version version for gitea-runner -v, --version version for gitea-runner
@@ -57,7 +57,7 @@ Flags:
--token-file string Path to a file containing the runner token --token-file string Path to a file containing the runner token
Global Flags: Global Flags:
-c, --config string Config file path -c, --config config Config file path. config subcommands fall back to config.yaml in the working directory or next to the executable
``` ```
## daemon ## daemon
@@ -76,7 +76,7 @@ Flags:
--once Run one job then exit --once Run one job then exit
Global Flags: Global Flags:
-c, --config string Config file path -c, --config config Config file path. config subcommands fall back to config.yaml in the working directory or next to the executable
``` ```
## exec ## exec
@@ -127,7 +127,7 @@ Flags:
-W, --workflows string path to workflow file(s) (default "./.gitea/workflows/") -W, --workflows string path to workflow file(s) (default "./.gitea/workflows/")
Global Flags: Global Flags:
-c, --config string Config file path -c, --config config Config file path. config subcommands fall back to config.yaml in the working directory or next to the executable
``` ```
## cache-server ## cache-server
@@ -147,7 +147,7 @@ Flags:
-p, --port uint16 Port of the cache server -p, --port uint16 Port of the cache server
Global Flags: Global Flags:
-c, --config string Config file path -c, --config config Config file path. config subcommands fall back to config.yaml in the working directory or next to the executable
``` ```
## generate-config ## generate-config
@@ -155,7 +155,7 @@ Global Flags:
Prints the commented example configuration on stdout, which is the starting point for a config file: `gitea-runner generate-config > config.yaml`. Prints the commented example configuration on stdout, which is the starting point for a config file: `gitea-runner generate-config > config.yaml`.
```text ```text
Generate an example config file Print the example config, which documents every option
Usage: Usage:
gitea-runner generate-config [flags] gitea-runner generate-config [flags]
@@ -164,7 +164,7 @@ Flags:
-h, --help help for generate-config -h, --help help for generate-config
Global Flags: Global Flags:
-c, --config string Config file path -c, --config config Config file path. config subcommands fall back to config.yaml in the working directory or next to the executable
``` ```
## bug-report ## bug-report
@@ -181,5 +181,5 @@ Flags:
-h, --help help for bug-report -h, --help help for bug-report
Global Flags: Global Flags:
-c, --config string Config file path -c, --config config Config file path. config subcommands fall back to config.yaml in the working directory or next to the executable
``` ```
+71 -69
View File
@@ -13,10 +13,8 @@ and it is the authoritative list of every option the runner understands. See
loaded. loaded.
```yaml ```yaml
# Example configuration file, it's safe to copy this as the default config file without any modification. # Every option with its default value, all commented out. Read this file, do not copy it.
# `./gitea-runner config init` writes a config file to copy the lines you change into.
# You don't have to copy this file to your instance,
# just run `./gitea-runner generate-config > config.yaml` to generate a config file.
# Logging for the runner process itself (messages printed to stderr). # Logging for the runner process itself (messages printed to stderr).
# This does not control how workflow step output is streamed to the Gitea UI; # This does not control how workflow step output is streamed to the Gitea UI;
@@ -24,92 +22,92 @@ loaded.
log: log:
# logrus severity: trace, debug, info, warn, error, fatal, panic. # logrus severity: trace, debug, info, warn, error, fatal, panic.
# trace and debug turn on caller/file:line in log lines. Default if omitted: info. # trace and debug turn on caller/file:line in log lines. Default if omitted: info.
level: info #level: info
runner: runner:
# Where to store the registration result. # Where to store the registration result.
file: .runner #file: .runner
# Execute how many tasks concurrently at the same time. # Execute how many tasks concurrently at the same time.
# With `container.network` empty, each concurrent docker job takes a subnet from the # With `container.network` empty, each concurrent docker job takes a subnet from the
# daemon's address pool, so a high capacity can exhaust it. See `default-address-pools` # daemon's address pool, so a high capacity can exhaust it. See `default-address-pools`
# in the docker daemon config. # in the docker daemon config.
capacity: 1 #capacity: 1
# Extra environment variables to run jobs. # Extra environment variables to run jobs.
envs: #envs:
A_TEST_ENV_NAME_1: a_test_env_value_1 # A_TEST_ENV_NAME_1: a_test_env_value_1
A_TEST_ENV_NAME_2: a_test_env_value_2 # A_TEST_ENV_NAME_2: a_test_env_value_2
# Extra environment variables to run jobs from a file. # Extra environment variables to run jobs from a file.
# It will be ignored if it's empty or the file doesn't exist. # It will be ignored if it's empty or the file doesn't exist.
env_file: .env #env_file: .env
# The timeout for a job to be finished. # The timeout for a job to be finished.
# Please note that the Gitea instance also has a timeout (3h by default) for the job. # Please note that the Gitea instance also has a timeout (3h by default) for the job.
# So the job could be stopped by the Gitea instance if its timeout is shorter than this. # So the job could be stopped by the Gitea instance if its timeout is shorter than this.
timeout: 3h #timeout: 3h
# The timeout for the runner to wait for running jobs to finish when shutting down. # The timeout for the runner to wait for running jobs to finish when shutting down.
# Any running jobs that haven't finished after this timeout will be cancelled. # Any running jobs that haven't finished after this timeout will be cancelled.
shutdown_timeout: 0s #shutdown_timeout: 0s
# Whether skip verifying the TLS certificate of the Gitea instance. # Whether skip verifying the TLS certificate of the Gitea instance.
insecure: false #insecure: false
# The timeout for fetching the job from the Gitea instance. # The timeout for fetching the job from the Gitea instance.
fetch_timeout: 5s #fetch_timeout: 5s
# The interval for fetching the job from the Gitea instance. # The interval for fetching the job from the Gitea instance.
fetch_interval: 2s #fetch_interval: 2s
# The maximum interval for fetching the job from the Gitea instance. # The maximum interval for fetching the job from the Gitea instance.
# The runner uses exponential backoff when idle, increasing the interval up to this maximum. # The runner uses exponential backoff when idle, increasing the interval up to this maximum.
# Set to 0 or same as fetch_interval to disable backoff. # Set to 0 or same as fetch_interval to disable backoff.
fetch_interval_max: 5s #fetch_interval_max: 5s
# While idle, remove stale bind-workdir task directories and orphaned host-mode # While idle, remove stale bind-workdir task directories and orphaned host-mode
# scratch directories (left behind when a host cleanup delete stalls) older than # scratch directories (left behind when a host cleanup delete stalls) older than
# this duration. Setting either workdir_cleanup_age or idle_cleanup_interval to 0 # this duration. Setting either workdir_cleanup_age or idle_cleanup_interval to 0
# (or any non-positive value) disables stale-directory cleanup entirely, along with # (or any non-positive value) disables stale-directory cleanup entirely, along with
# the docker network cleanup below. # the docker network cleanup below.
workdir_cleanup_age: 24h #workdir_cleanup_age: 24h
# Cadence for the idle cleanup pass. Besides the directories above, on runners that use # Cadence for the idle cleanup pass. Besides the directories above, on runners that use
# docker it removes the per-job networks of jobs this runner did not live to tear down, # docker it removes the per-job networks of jobs this runner did not live to tear down,
# which would otherwise hold a subnet of the daemon address pool until the host is rebuilt. # which would otherwise hold a subnet of the daemon address pool until the host is rebuilt.
idle_cleanup_interval: 10m #idle_cleanup_interval: 10m
# The base interval for periodic log flush to the Gitea instance. # The base interval for periodic log flush to the Gitea instance.
# Logs may be sent earlier if the buffer reaches log_report_batch_size # Logs may be sent earlier if the buffer reaches log_report_batch_size
# or if log_report_max_latency expires after the first buffered row. # or if log_report_max_latency expires after the first buffered row.
log_report_interval: 5s #log_report_interval: 5s
# The maximum time a log row can wait before being sent. # The maximum time a log row can wait before being sent.
# This ensures even a single log line appears on the frontend within this duration. # This ensures even a single log line appears on the frontend within this duration.
# Must be less than log_report_interval to have any effect. # Must be less than log_report_interval to have any effect.
log_report_max_latency: 3s #log_report_max_latency: 3s
# Flush logs immediately when the buffer reaches this many rows. # Flush logs immediately when the buffer reaches this many rows.
# This ensures bursty output (e.g., npm install) is delivered promptly. # This ensures bursty output (e.g., npm install) is delivered promptly.
log_report_batch_size: 100 #log_report_batch_size: 100
# The interval for reporting task state (step status, timing) to the Gitea instance. # The interval for reporting task state (step status, timing) to the Gitea instance.
# State is also reported immediately on step transitions (start/stop). # State is also reported immediately on step transitions (start/stop).
state_report_interval: 5s #state_report_interval: 5s
# Per-attempt deadline for flushing the final logs and task state when a job # Per-attempt deadline for flushing the final logs and task state when a job
# finishes, on a detached context so a server cancel can't block the acknowledgement. # finishes, on a detached context so a server cancel can't block the acknowledgement.
report_close_timeout: 10s #report_close_timeout: 10s
# The github_mirror of a runner is used to specify the mirror address of the github that pulls the action repository. # The github_mirror of a runner is used to specify the mirror address of the github that pulls the action repository.
# It works when something like `uses: actions/checkout@v4` is used and DEFAULT_ACTIONS_URL is set to github, # It works when something like `uses: actions/checkout@v4` is used and DEFAULT_ACTIONS_URL is set to github,
# and github_mirror is not empty. In this case, # and github_mirror is not empty. In this case,
# it replaces https://github.com with the value here, which is useful for some special network environments. # it replaces https://github.com with the value here, which is useful for some special network environments.
github_mirror: '' #github_mirror: ''
# When true (the default), fetch only the requested ref of an action repository (e.g. actions/checkout@v4) at depth 1 instead of cloning every branch's full history. # When true (the default), fetch only the requested ref of an action repository (e.g. actions/checkout@v4) at depth 1 instead of cloning every branch's full history.
# Set to false to clone the full history. # Set to false to clone the full history.
action_shallow_clone: true #action_shallow_clone: true
# When true (the default), inject the ACT=true environment variable into jobs. # When true (the default), inject the ACT=true environment variable into jobs.
# Set to false so workflows gated on `if: ${{ !env.ACT }}` behave like they do on GitHub. # Set to false so workflows gated on `if: ${{ !env.ACT }}` behave like they do on GitHub.
set_act_env: true #set_act_env: true
# The labels of a runner are used to determine which jobs the runner can run, and how to run them. # The labels of a runner are used to determine which jobs the runner can run, and how to run them.
# Like: "macos-arm64:host" or "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" # Like: "macos-arm64:host" or "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest"
# Find more images provided by Gitea at https://gitea.com/gitea/runner-images . # Find more images provided by Gitea at https://gitea.com/gitea/runner-images .
# If it's empty when registering, it will ask for inputting labels. # If it's empty when registering, it will ask for inputting labels.
# If it's empty when execute `daemon`, will use labels in `.runner` file. # If it's empty when execute `daemon`, will use labels in `.runner` file.
labels: #labels:
- "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" # - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest"
- "ubuntu-24.04:docker://docker.gitea.com/runner-images:ubuntu-24.04" # - "ubuntu-24.04:docker://docker.gitea.com/runner-images:ubuntu-24.04"
- "ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04" # - "ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04"
# Allocate a pseudo-TTY for each step's process. Applies to both host and docker backends. # Allocate a pseudo-TTY for each step's process. Applies to both host and docker backends.
# Default false matches GitHub actions/runner. Enable only for jobs that need an interactive # Default false matches GitHub actions/runner. Enable only for jobs that need an interactive
# terminal; tools like `docker build` emit redrawing progress frames into the captured log # terminal; tools like `docker build` emit redrawing progress frames into the captured log
# when a TTY is present. # when a TTY is present.
allocate_pty: false #allocate_pty: false
# Optional executable on the host, run once after each task's built-in cleanup # Optional executable on the host, run once after each task's built-in cleanup
# (post-steps, container teardown, bind-workdir removal). Additive only. # (post-steps, container teardown, bind-workdir removal). Additive only.
# #
@@ -122,24 +120,24 @@ runner:
# Windows: use .exe, .bat, or .cmd. PowerShell (.ps1) is not supported yet as # Windows: use .exe, .bat, or .cmd. PowerShell (.ps1) is not supported yet as
# the configured path; wrap PowerShell commands in a .cmd file instead. # the configured path; wrap PowerShell commands in a .cmd file instead.
# Full guide: docs/post-task-script.md # Full guide: docs/post-task-script.md
post_task_script: '' #post_task_script: ''
# Hard limit on post_task_script runtime. Default if omitted: 5m. # Hard limit on post_task_script runtime. Default if omitted: 5m.
post_task_script_timeout: 5m #post_task_script_timeout: 5m
# Scripts run inside the job environment before the job's first step and after its last # Scripts run inside the job environment before the job's first step and after its last
# one, the equivalent of GitHub's ACTIONS_RUNNER_HOOK_JOB_STARTED and # one, the equivalent of GitHub's ACTIONS_RUNNER_HOOK_JOB_STARTED and
# ACTIONS_RUNNER_HOOK_JOB_COMPLETED, which are read when these are unset. The paths are # ACTIONS_RUNNER_HOOK_JOB_COMPLETED, which are read when these are unset. The paths are
# resolved inside the job environment. Either one failing fails the job. # resolved inside the job environment. Either one failing fails the job.
# Full guide: docs/job-hooks.md # Full guide: docs/job-hooks.md
hooks: #hooks:
job_started: '' # job_started: ''
job_completed: '' # job_completed: ''
cache: cache:
# Enable the built-in cache server (used by actions/cache and similar actions). # Enable the built-in cache server (used by actions/cache and similar actions).
enabled: true #enabled: true
# Directory where cache blobs are stored on disk. Default: $HOME/.cache/actcache # Directory where cache blobs are stored on disk. Default: $HOME/.cache/actcache
# Ignored when external_server is set. # Ignored when external_server is set.
dir: "" #dir: ""
# Outbound IP or hostname that job containers use to reach this runner's cache server. # Outbound IP or hostname that job containers use to reach this runner's cache server.
# Leave empty to detect automatically. 0.0.0.0 is not valid here. # Leave empty to detect automatically. 0.0.0.0 is not valid here.
# If the runner itself runs in Docker, automatic detection can choose an # If the runner itself runs in Docker, automatic detection can choose an
@@ -148,33 +146,34 @@ cache:
# to a hostname/IP reachable from job containers, and set port to a fixed # to a hostname/IP reachable from job containers, and set port to a fixed
# published port or put the job containers on a shared Docker network. # published port or put the job containers on a shared Docker network.
# Ignored when external_server is set. # Ignored when external_server is set.
host: "" #host: ""
# Port for the built-in cache server. 0 picks a random free port. # Port for the built-in cache server. 0 picks a random free port.
# Ignored when external_server is set. # Ignored when external_server is set.
port: 0 #port: 0
# URL of a shared `gitea-runner cache-server` to use instead of starting a local one. # URL of a shared `gitea-runner cache-server` to use instead of starting a local one.
# Set on every runner that should share a cache pool. A trailing slash is optional. # Set on every runner that should share a cache pool. A trailing slash is optional.
# Jobs reach the server at this URL too, so set it to the reverse proxy when one fronts the server.
# Example: "http://cache-host:8088/" # Example: "http://cache-host:8088/"
# Requires external_secret (below) to match the value on the cache-server. # Requires external_secret (below) to match the value on the cache-server.
external_server: "" #external_server: ""
# Shared secret between this runner and the external cache-server. # Shared secret between this runner and the external cache-server.
# Required when external_server is set. Must be identical on every runner and the cache-server. # Required when external_server is set. Must be identical on every runner and the cache-server.
# Generate with: openssl rand -hex 32 # Generate with: openssl rand -hex 32
external_secret: "" #external_secret: ""
# Path to a file containing the shared secret, as an alternative to external_secret. # Path to a file containing the shared secret, as an alternative to external_secret.
# Use this to keep the secret out of this file. # Use this to keep the secret out of this file.
# Surrounding whitespace is trimmed, so a trailing newline in the file is fine. # Surrounding whitespace is trimmed, so a trailing newline in the file is fine.
# Setting both external_secret and external_secret_file is an error. # Setting both external_secret and external_secret_file is an error.
external_secret_file: "" #external_secret_file: ""
# When true, reuse a cached action instead of fetching from the remote on every job. # When true, reuse a cached action instead of fetching from the remote on every job.
# A moved tag (e.g. a re-tagged "v6") or an updated branch stays at the cached commit # A moved tag (e.g. a re-tagged "v6") or an updated branch stays at the cached commit
# until its cache entry expires or is manually removed. # until its cache entry expires or is manually removed.
offline_mode: false #offline_mode: false
# Serve the actions cache service v2 API, used by actions/[email protected] and later. Those actions # Serve the actions cache service v2 API, used by actions/[email protected] and later. Those actions
# refuse any host they do not take for GitHub, so reaching it means editing that check out of # refuse any host they do not take for GitHub, so reaching it means editing that check out of
# the action's own bundle, keeping the untouched copy beside it. The same edit lets the stock # the action's own bundle, keeping the untouched copy beside it. The same edit lets the stock
# upload-artifact and download-artifact work here. A bundle that does not match is left alone. # upload-artifact and download-artifact work here. A bundle that does not match is left alone.
v2: true #v2: true
container: container:
# Specifies the network to which the container will connect. # Specifies the network to which the container will connect.
@@ -183,31 +182,31 @@ container:
# For dockerized runners using the built-in cache server, a custom shared # For dockerized runners using the built-in cache server, a custom shared
# network can be required so job containers can reach cache.host/cache.port. # network can be required so job containers can reach cache.host/cache.port.
# Deprecated: `network_mode` is still accepted for old configs; use `network` instead. # Deprecated: `network_mode` is still accepted for old configs; use `network` instead.
network: "" #network: ""
# network_create_options only apply when `network` is left empty and the runner # network_create_options only apply when `network` is left empty and the runner
# auto-creates a per-job network that does not already exist. They have no effect # auto-creates a per-job network that does not already exist. They have no effect
# when a custom `network` name is set, because that network is used as-is and never # when a custom `network` name is set, because that network is used as-is and never
# created by the runner. Omit the entire block to use Docker's defaults. An auto-created # created by the runner. Omit the entire block to use Docker's defaults. An auto-created
# network is labelled com.gitea.runner.uuid=<this runner's uuid>, which is how the idle # network is labelled com.gitea.runner.uuid=<this runner's uuid>, which is how the idle
# cleanup tells its own leftovers apart from those of other runners on the same daemon. # cleanup tells its own leftovers apart from those of other runners on the same daemon.
network_create_options: #network_create_options:
enable_ipv4: true # Omit to use Docker's default (IPv4 enabled). Set false to disable IPv4. # enable_ipv4: true # Omit to use Docker's default (IPv4 enabled). Set false to disable IPv4.
enable_ipv6: false # Omit to use Docker's default (IPv6 disabled). Enabling it requires dockerd started with --ipv6. # enable_ipv6: false # Omit to use Docker's default (IPv6 disabled). Enabling it requires dockerd started with --ipv6.
# Whether to use privileged mode or not when launching task containers (privileged mode is required for Docker-in-Docker). # Whether to use privileged mode or not when launching task containers (privileged mode is required for Docker-in-Docker).
privileged: false #privileged: false
# Any other options to be used when the container is started, for example: # Any other options to be used when the container is started, for example:
# options: --add-host=my.gitea.url:host-gateway # options: --add-host=my.gitea.url:host-gateway
# A volume declared here replaces the one the runner mounts on the same container path, so the # A volume declared here replaces the one the runner mounts on the same container path, so the
# tool cache can be kept on the host. Its source must also be allowed by valid_volumes below: # tool cache can be kept on the host. Its source must also be allowed by valid_volumes below:
# options: --volume /host/toolcache:/opt/hostedtoolcache # options: --volume /host/toolcache:/opt/hostedtoolcache
options: #options:
# The parent directory of a job's working directory. # The parent directory of a job's working directory.
# NOTE: There is no need to add the first '/' of the path as runner will add it automatically. # NOTE: There is no need to add the first '/' of the path as runner will add it automatically.
# If the path starts with '/', the '/' will be trimmed. # If the path starts with '/', the '/' will be trimmed.
# For example, if the parent directory is /path/to/my/dir, workdir_parent should be path/to/my/dir # For example, if the parent directory is /path/to/my/dir, workdir_parent should be path/to/my/dir
# If it's empty, /workspace will be used. # If it's empty, /workspace will be used.
# Purely numeric subdirectories under this path are reserved for task workspaces and may be removed by idle cleanup. # Purely numeric subdirectories under this path are reserved for task workspaces and may be removed by idle cleanup.
workdir_parent: #workdir_parent:
# Volumes (including bind mounts) can be mounted to containers. Glob syntax is supported, see https://github.com/gobwas/glob # Volumes (including bind mounts) can be mounted to containers. Glob syntax is supported, see https://github.com/gobwas/glob
# You can specify multiple volumes. If the sequence is empty, no volumes can be mounted. # You can specify multiple volumes. If the sequence is empty, no volumes can be mounted.
# For example, if you only allow containers to mount the `data` volume and all the json files in `/src`, you should change the config to: # For example, if you only allow containers to mount the `data` volume and all the json files in `/src`, you should change the config to:
@@ -217,60 +216,63 @@ container:
# If you want to allow any volume, please use the following configuration: # If you want to allow any volume, please use the following configuration:
# valid_volumes: # valid_volumes:
# - '**' # - '**'
valid_volumes: [] #valid_volumes: []
# Overrides the docker client host with the specified one. # Overrides the docker client host with the specified one.
# If it's empty, runner will find an available docker host automatically. # If it's empty, runner will find an available docker host automatically.
# If it's "-", runner will find an available docker host automatically, but the docker host won't be mounted to the job containers and service containers. # If it's "-", runner will find an available docker host automatically, but the docker host won't be mounted to the job containers and service containers.
# If it's not empty or "-", the specified docker host will be used. An error will be returned if it doesn't work. # If it's not empty or "-", the specified docker host will be used. An error will be returned if it doesn't work.
docker_host: "" #docker_host: ""
# Pull docker image(s) even if already present. # Pull docker image(s) even if already present.
# Defaults to false when the key is omitted. # Defaults to false when the key is omitted.
# Two exceptions: an image pinned by digest (image@sha256:...) cannot change, so it is never # Two exceptions: an image pinned by digest (image@sha256:...) cannot change, so it is never
# re-pulled, and a pull that fails while a copy is already on the host does not fail the job, # re-pulled, and a pull that fails while a copy is already on the host does not fail the job,
# which runs on that copy with a warning in its log. # which runs on that copy with a warning in its log.
force_pull: false #force_pull: false
# Rebuild docker image(s) even if already present # Rebuild docker image(s) even if already present
force_rebuild: false #force_rebuild: false
# Always require a reachable docker daemon, even if not required by runner # Always require a reachable docker daemon, even if not required by runner
require_docker: false #require_docker: false
# Timeout to wait for the docker daemon to be reachable, if docker is required by require_docker or runner # Timeout to wait for the docker daemon to be reachable, if docker is required by require_docker or runner
docker_timeout: 0s #docker_timeout: 0s
# Bind the workspace to the host filesystem instead of using Docker volumes. # Bind the workspace to the host filesystem instead of using Docker volumes.
# This is required for Docker-in-Docker (DinD) setups when jobs use docker compose # This is required for Docker-in-Docker (DinD) setups when jobs use docker compose
# with bind mounts (e.g., ".:/app"), as volume-based workspaces are not accessible # with bind mounts (e.g., ".:/app"), as volume-based workspaces are not accessible
# from the DinD daemon's filesystem. When enabled, ensure the workspace parent # from the DinD daemon's filesystem. When enabled, ensure the workspace parent
# directory is also mounted into the runner container and listed in valid_volumes. # directory is also mounted into the runner container and listed in valid_volumes.
bind_workdir: false #bind_workdir: false
# How long a job waits for a service container that declares a healthcheck to become
# healthy. A negative value (e.g. -1s) starts the steps without waiting.
#service_ready_timeout: 5m
host: host:
# The parent directory of a job's working directory. # The parent directory of a job's working directory.
# If it's empty, $HOME/.cache/act/ will be used. # If it's empty, $HOME/.cache/act/ will be used.
workdir_parent: #workdir_parent:
# Optional local task-admission checks. Disabled by default. When enabled, low # Optional local task-admission checks. Disabled by default. When enabled, low
# disk space or a failing script pauses new task fetching; existing jobs continue. # disk space or a failing script pauses new task fetching; existing jobs continue.
# No health checks run while any job is active; the last result is reused until idle. # No health checks run while any job is active; the last result is reused until idle.
health_check: health_check:
enabled: false #enabled: false
# Minimum free space required on the filesystem holding runner workspaces. # Minimum free space required on the filesystem holding runner workspaces.
# Defaults to 1024 MiB when omitted or set to zero. # Defaults to 1024 MiB when omitted or set to zero.
min_free_disk_space_mb: 1024 #min_free_disk_space_mb: 1024
# Optional additional executable. A non-zero exit, timeout, or startup failure # Optional additional executable. A non-zero exit, timeout, or startup failure
# marks the runner unavailable. # marks the runner unavailable.
script: '' #script: ''
# How long a script result is cached and its maximum execution time. # How long a script result is cached and its maximum execution time.
interval: 30s #interval: 30s
timeout: 10s #timeout: 10s
metrics: metrics:
# Enable the Prometheus metrics endpoint. # Enable the Prometheus metrics endpoint.
# When enabled, metrics are served at /metrics, liveness at /healthz, and # When enabled, metrics are served at /metrics, liveness at /healthz, and
# task-admission readiness at /readyz. # task-admission readiness at /readyz.
enabled: false #enabled: false
# The address for the metrics HTTP server to listen on. # The address for the metrics HTTP server to listen on.
# Defaults to localhost only. Set to ":9101" to allow external access, # Defaults to localhost only. Set to ":9101" to allow external access,
# but ensure the port is firewall-protected as there is no authentication. # but ensure the port is firewall-protected as there is no authentication.
addr: "127.0.0.1:9101" #addr: "127.0.0.1:9101"
# Consecutive polling failures may last this long before /readyz returns 503. # Consecutive polling failures may last this long before /readyz returns 503.
readiness_grace: 30s #readiness_grace: 30s
``` ```
@@ -22,14 +22,14 @@ Usage:
Available Commands: Available Commands:
bug-report Print information useful when filing a bug report bug-report Print information useful when filing a bug report
cache-server Start a cache server for the cache action cache-server Start a cache server for the cache action
config Generate, read and edit config files
daemon Run as a runner daemon daemon Run as a runner daemon
exec Run workflow locally. exec Run workflow locally.
generate-config Generate an example config file
help Help about any command help Help about any command
register Register a runner to the server register Register a runner to the server
Flags: Flags:
-c, --config string Config file path -c, --config config Config file path. config subcommands fall back to config.yaml in the working directory or next to the executable
-h, --help help for gitea-runner -h, --help help for gitea-runner
-v, --version version for gitea-runner -v, --version version for gitea-runner
@@ -57,7 +57,7 @@ Flags:
--token-file string Path to a file containing the runner token --token-file string Path to a file containing the runner token
Global Flags: Global Flags:
-c, --config string Config file path -c, --config config Config file path. config subcommands fall back to config.yaml in the working directory or next to the executable
``` ```
## daemon ## daemon
@@ -76,7 +76,7 @@ Flags:
--once Run one job then exit --once Run one job then exit
Global Flags: Global Flags:
-c, --config string Config file path -c, --config config Config file path. config subcommands fall back to config.yaml in the working directory or next to the executable
``` ```
## exec ## exec
@@ -127,7 +127,7 @@ Flags:
-W, --workflows string path to workflow file(s) (default "./.gitea/workflows/") -W, --workflows string path to workflow file(s) (default "./.gitea/workflows/")
Global Flags: Global Flags:
-c, --config string Config file path -c, --config config Config file path. config subcommands fall back to config.yaml in the working directory or next to the executable
``` ```
## cache-server ## cache-server
@@ -147,7 +147,7 @@ Flags:
-p, --port uint16 Port of the cache server -p, --port uint16 Port of the cache server
Global Flags: Global Flags:
-c, --config string Config file path -c, --config config Config file path. config subcommands fall back to config.yaml in the working directory or next to the executable
``` ```
## generate-config ## generate-config
@@ -155,7 +155,7 @@ Global Flags:
Prints the commented example configuration on stdout, which is the starting point for a config file: `gitea-runner generate-config > config.yaml`. Prints the commented example configuration on stdout, which is the starting point for a config file: `gitea-runner generate-config > config.yaml`.
```text ```text
Generate an example config file Print the example config, which documents every option
Usage: Usage:
gitea-runner generate-config [flags] gitea-runner generate-config [flags]
@@ -164,7 +164,7 @@ Flags:
-h, --help help for generate-config -h, --help help for generate-config
Global Flags: Global Flags:
-c, --config string Config file path -c, --config config Config file path. config subcommands fall back to config.yaml in the working directory or next to the executable
``` ```
## bug-report ## bug-report
@@ -181,5 +181,5 @@ Flags:
-h, --help help for bug-report -h, --help help for bug-report
Global Flags: Global Flags:
-c, --config string Config file path -c, --config config Config file path. config subcommands fall back to config.yaml in the working directory or next to the executable
``` ```
@@ -13,10 +13,8 @@ and it is the authoritative list of every option the runner understands. See
loaded. loaded.
```yaml ```yaml
# Example configuration file, it's safe to copy this as the default config file without any modification. # Every option with its default value, all commented out. Read this file, do not copy it.
# `./gitea-runner config init` writes a config file to copy the lines you change into.
# You don't have to copy this file to your instance,
# just run `./gitea-runner generate-config > config.yaml` to generate a config file.
# Logging for the runner process itself (messages printed to stderr). # Logging for the runner process itself (messages printed to stderr).
# This does not control how workflow step output is streamed to the Gitea UI; # This does not control how workflow step output is streamed to the Gitea UI;
@@ -24,92 +22,92 @@ loaded.
log: log:
# logrus severity: trace, debug, info, warn, error, fatal, panic. # logrus severity: trace, debug, info, warn, error, fatal, panic.
# trace and debug turn on caller/file:line in log lines. Default if omitted: info. # trace and debug turn on caller/file:line in log lines. Default if omitted: info.
level: info #level: info
runner: runner:
# Where to store the registration result. # Where to store the registration result.
file: .runner #file: .runner
# Execute how many tasks concurrently at the same time. # Execute how many tasks concurrently at the same time.
# With `container.network` empty, each concurrent docker job takes a subnet from the # With `container.network` empty, each concurrent docker job takes a subnet from the
# daemon's address pool, so a high capacity can exhaust it. See `default-address-pools` # daemon's address pool, so a high capacity can exhaust it. See `default-address-pools`
# in the docker daemon config. # in the docker daemon config.
capacity: 1 #capacity: 1
# Extra environment variables to run jobs. # Extra environment variables to run jobs.
envs: #envs:
A_TEST_ENV_NAME_1: a_test_env_value_1 # A_TEST_ENV_NAME_1: a_test_env_value_1
A_TEST_ENV_NAME_2: a_test_env_value_2 # A_TEST_ENV_NAME_2: a_test_env_value_2
# Extra environment variables to run jobs from a file. # Extra environment variables to run jobs from a file.
# It will be ignored if it's empty or the file doesn't exist. # It will be ignored if it's empty or the file doesn't exist.
env_file: .env #env_file: .env
# The timeout for a job to be finished. # The timeout for a job to be finished.
# Please note that the Gitea instance also has a timeout (3h by default) for the job. # Please note that the Gitea instance also has a timeout (3h by default) for the job.
# So the job could be stopped by the Gitea instance if its timeout is shorter than this. # So the job could be stopped by the Gitea instance if its timeout is shorter than this.
timeout: 3h #timeout: 3h
# The timeout for the runner to wait for running jobs to finish when shutting down. # The timeout for the runner to wait for running jobs to finish when shutting down.
# Any running jobs that haven't finished after this timeout will be cancelled. # Any running jobs that haven't finished after this timeout will be cancelled.
shutdown_timeout: 0s #shutdown_timeout: 0s
# Whether skip verifying the TLS certificate of the Gitea instance. # Whether skip verifying the TLS certificate of the Gitea instance.
insecure: false #insecure: false
# The timeout for fetching the job from the Gitea instance. # The timeout for fetching the job from the Gitea instance.
fetch_timeout: 5s #fetch_timeout: 5s
# The interval for fetching the job from the Gitea instance. # The interval for fetching the job from the Gitea instance.
fetch_interval: 2s #fetch_interval: 2s
# The maximum interval for fetching the job from the Gitea instance. # The maximum interval for fetching the job from the Gitea instance.
# The runner uses exponential backoff when idle, increasing the interval up to this maximum. # The runner uses exponential backoff when idle, increasing the interval up to this maximum.
# Set to 0 or same as fetch_interval to disable backoff. # Set to 0 or same as fetch_interval to disable backoff.
fetch_interval_max: 5s #fetch_interval_max: 5s
# While idle, remove stale bind-workdir task directories and orphaned host-mode # While idle, remove stale bind-workdir task directories and orphaned host-mode
# scratch directories (left behind when a host cleanup delete stalls) older than # scratch directories (left behind when a host cleanup delete stalls) older than
# this duration. Setting either workdir_cleanup_age or idle_cleanup_interval to 0 # this duration. Setting either workdir_cleanup_age or idle_cleanup_interval to 0
# (or any non-positive value) disables stale-directory cleanup entirely, along with # (or any non-positive value) disables stale-directory cleanup entirely, along with
# the docker network cleanup below. # the docker network cleanup below.
workdir_cleanup_age: 24h #workdir_cleanup_age: 24h
# Cadence for the idle cleanup pass. Besides the directories above, on runners that use # Cadence for the idle cleanup pass. Besides the directories above, on runners that use
# docker it removes the per-job networks of jobs this runner did not live to tear down, # docker it removes the per-job networks of jobs this runner did not live to tear down,
# which would otherwise hold a subnet of the daemon address pool until the host is rebuilt. # which would otherwise hold a subnet of the daemon address pool until the host is rebuilt.
idle_cleanup_interval: 10m #idle_cleanup_interval: 10m
# The base interval for periodic log flush to the Gitea instance. # The base interval for periodic log flush to the Gitea instance.
# Logs may be sent earlier if the buffer reaches log_report_batch_size # Logs may be sent earlier if the buffer reaches log_report_batch_size
# or if log_report_max_latency expires after the first buffered row. # or if log_report_max_latency expires after the first buffered row.
log_report_interval: 5s #log_report_interval: 5s
# The maximum time a log row can wait before being sent. # The maximum time a log row can wait before being sent.
# This ensures even a single log line appears on the frontend within this duration. # This ensures even a single log line appears on the frontend within this duration.
# Must be less than log_report_interval to have any effect. # Must be less than log_report_interval to have any effect.
log_report_max_latency: 3s #log_report_max_latency: 3s
# Flush logs immediately when the buffer reaches this many rows. # Flush logs immediately when the buffer reaches this many rows.
# This ensures bursty output (e.g., npm install) is delivered promptly. # This ensures bursty output (e.g., npm install) is delivered promptly.
log_report_batch_size: 100 #log_report_batch_size: 100
# The interval for reporting task state (step status, timing) to the Gitea instance. # The interval for reporting task state (step status, timing) to the Gitea instance.
# State is also reported immediately on step transitions (start/stop). # State is also reported immediately on step transitions (start/stop).
state_report_interval: 5s #state_report_interval: 5s
# Per-attempt deadline for flushing the final logs and task state when a job # Per-attempt deadline for flushing the final logs and task state when a job
# finishes, on a detached context so a server cancel can't block the acknowledgement. # finishes, on a detached context so a server cancel can't block the acknowledgement.
report_close_timeout: 10s #report_close_timeout: 10s
# The github_mirror of a runner is used to specify the mirror address of the github that pulls the action repository. # The github_mirror of a runner is used to specify the mirror address of the github that pulls the action repository.
# It works when something like `uses: actions/checkout@v4` is used and DEFAULT_ACTIONS_URL is set to github, # It works when something like `uses: actions/checkout@v4` is used and DEFAULT_ACTIONS_URL is set to github,
# and github_mirror is not empty. In this case, # and github_mirror is not empty. In this case,
# it replaces https://github.com with the value here, which is useful for some special network environments. # it replaces https://github.com with the value here, which is useful for some special network environments.
github_mirror: '' #github_mirror: ''
# When true (the default), fetch only the requested ref of an action repository (e.g. actions/checkout@v4) at depth 1 instead of cloning every branch's full history. # When true (the default), fetch only the requested ref of an action repository (e.g. actions/checkout@v4) at depth 1 instead of cloning every branch's full history.
# Set to false to clone the full history. # Set to false to clone the full history.
action_shallow_clone: true #action_shallow_clone: true
# When true (the default), inject the ACT=true environment variable into jobs. # When true (the default), inject the ACT=true environment variable into jobs.
# Set to false so workflows gated on `if: ${{ !env.ACT }}` behave like they do on GitHub. # Set to false so workflows gated on `if: ${{ !env.ACT }}` behave like they do on GitHub.
set_act_env: true #set_act_env: true
# The labels of a runner are used to determine which jobs the runner can run, and how to run them. # The labels of a runner are used to determine which jobs the runner can run, and how to run them.
# Like: "macos-arm64:host" or "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" # Like: "macos-arm64:host" or "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest"
# Find more images provided by Gitea at https://gitea.com/gitea/runner-images . # Find more images provided by Gitea at https://gitea.com/gitea/runner-images .
# If it's empty when registering, it will ask for inputting labels. # If it's empty when registering, it will ask for inputting labels.
# If it's empty when execute `daemon`, will use labels in `.runner` file. # If it's empty when execute `daemon`, will use labels in `.runner` file.
labels: #labels:
- "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" # - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest"
- "ubuntu-24.04:docker://docker.gitea.com/runner-images:ubuntu-24.04" # - "ubuntu-24.04:docker://docker.gitea.com/runner-images:ubuntu-24.04"
- "ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04" # - "ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04"
# Allocate a pseudo-TTY for each step's process. Applies to both host and docker backends. # Allocate a pseudo-TTY for each step's process. Applies to both host and docker backends.
# Default false matches GitHub actions/runner. Enable only for jobs that need an interactive # Default false matches GitHub actions/runner. Enable only for jobs that need an interactive
# terminal; tools like `docker build` emit redrawing progress frames into the captured log # terminal; tools like `docker build` emit redrawing progress frames into the captured log
# when a TTY is present. # when a TTY is present.
allocate_pty: false #allocate_pty: false
# Optional executable on the host, run once after each task's built-in cleanup # Optional executable on the host, run once after each task's built-in cleanup
# (post-steps, container teardown, bind-workdir removal). Additive only. # (post-steps, container teardown, bind-workdir removal). Additive only.
# #
@@ -122,24 +120,24 @@ runner:
# Windows: use .exe, .bat, or .cmd. PowerShell (.ps1) is not supported yet as # Windows: use .exe, .bat, or .cmd. PowerShell (.ps1) is not supported yet as
# the configured path; wrap PowerShell commands in a .cmd file instead. # the configured path; wrap PowerShell commands in a .cmd file instead.
# Full guide: docs/post-task-script.md # Full guide: docs/post-task-script.md
post_task_script: '' #post_task_script: ''
# Hard limit on post_task_script runtime. Default if omitted: 5m. # Hard limit on post_task_script runtime. Default if omitted: 5m.
post_task_script_timeout: 5m #post_task_script_timeout: 5m
# Scripts run inside the job environment before the job's first step and after its last # Scripts run inside the job environment before the job's first step and after its last
# one, the equivalent of GitHub's ACTIONS_RUNNER_HOOK_JOB_STARTED and # one, the equivalent of GitHub's ACTIONS_RUNNER_HOOK_JOB_STARTED and
# ACTIONS_RUNNER_HOOK_JOB_COMPLETED, which are read when these are unset. The paths are # ACTIONS_RUNNER_HOOK_JOB_COMPLETED, which are read when these are unset. The paths are
# resolved inside the job environment. Either one failing fails the job. # resolved inside the job environment. Either one failing fails the job.
# Full guide: docs/job-hooks.md # Full guide: docs/job-hooks.md
hooks: #hooks:
job_started: '' # job_started: ''
job_completed: '' # job_completed: ''
cache: cache:
# Enable the built-in cache server (used by actions/cache and similar actions). # Enable the built-in cache server (used by actions/cache and similar actions).
enabled: true #enabled: true
# Directory where cache blobs are stored on disk. Default: $HOME/.cache/actcache # Directory where cache blobs are stored on disk. Default: $HOME/.cache/actcache
# Ignored when external_server is set. # Ignored when external_server is set.
dir: "" #dir: ""
# Outbound IP or hostname that job containers use to reach this runner's cache server. # Outbound IP or hostname that job containers use to reach this runner's cache server.
# Leave empty to detect automatically. 0.0.0.0 is not valid here. # Leave empty to detect automatically. 0.0.0.0 is not valid here.
# If the runner itself runs in Docker, automatic detection can choose an # If the runner itself runs in Docker, automatic detection can choose an
@@ -148,33 +146,33 @@ cache:
# to a hostname/IP reachable from job containers, and set port to a fixed # to a hostname/IP reachable from job containers, and set port to a fixed
# published port or put the job containers on a shared Docker network. # published port or put the job containers on a shared Docker network.
# Ignored when external_server is set. # Ignored when external_server is set.
host: "" #host: ""
# Port for the built-in cache server. 0 picks a random free port. # Port for the built-in cache server. 0 picks a random free port.
# Ignored when external_server is set. # Ignored when external_server is set.
port: 0 #port: 0
# URL of a shared `gitea-runner cache-server` to use instead of starting a local one. # URL of a shared `gitea-runner cache-server` to use instead of starting a local one.
# Set on every runner that should share a cache pool. A trailing slash is optional. # Set on every runner that should share a cache pool. A trailing slash is optional.
# Example: "http://cache-host:8088/" # Example: "http://cache-host:8088/"
# Requires external_secret (below) to match the value on the cache-server. # Requires external_secret (below) to match the value on the cache-server.
external_server: "" #external_server: ""
# Shared secret between this runner and the external cache-server. # Shared secret between this runner and the external cache-server.
# Required when external_server is set. Must be identical on every runner and the cache-server. # Required when external_server is set. Must be identical on every runner and the cache-server.
# Generate with: openssl rand -hex 32 # Generate with: openssl rand -hex 32
external_secret: "" #external_secret: ""
# Path to a file containing the shared secret, as an alternative to external_secret. # Path to a file containing the shared secret, as an alternative to external_secret.
# Use this to keep the secret out of this file. # Use this to keep the secret out of this file.
# Surrounding whitespace is trimmed, so a trailing newline in the file is fine. # Surrounding whitespace is trimmed, so a trailing newline in the file is fine.
# Setting both external_secret and external_secret_file is an error. # Setting both external_secret and external_secret_file is an error.
external_secret_file: "" #external_secret_file: ""
# When true, reuse a cached action instead of fetching from the remote on every job. # When true, reuse a cached action instead of fetching from the remote on every job.
# A moved tag (e.g. a re-tagged "v6") or an updated branch stays at the cached commit # A moved tag (e.g. a re-tagged "v6") or an updated branch stays at the cached commit
# until its cache entry expires or is manually removed. # until its cache entry expires or is manually removed.
offline_mode: false #offline_mode: false
# Serve the actions cache service v2 API, used by actions/[email protected] and later. Those actions # Serve the actions cache service v2 API, used by actions/[email protected] and later. Those actions
# refuse any host they do not take for GitHub, so reaching it means editing that check out of # refuse any host they do not take for GitHub, so reaching it means editing that check out of
# the action's own bundle, keeping the untouched copy beside it. The same edit lets the stock # the action's own bundle, keeping the untouched copy beside it. The same edit lets the stock
# upload-artifact and download-artifact work here. A bundle that does not match is left alone. # upload-artifact and download-artifact work here. A bundle that does not match is left alone.
v2: true #v2: true
container: container:
# Specifies the network to which the container will connect. # Specifies the network to which the container will connect.
@@ -183,31 +181,31 @@ container:
# For dockerized runners using the built-in cache server, a custom shared # For dockerized runners using the built-in cache server, a custom shared
# network can be required so job containers can reach cache.host/cache.port. # network can be required so job containers can reach cache.host/cache.port.
# Deprecated: `network_mode` is still accepted for old configs; use `network` instead. # Deprecated: `network_mode` is still accepted for old configs; use `network` instead.
network: "" #network: ""
# network_create_options only apply when `network` is left empty and the runner # network_create_options only apply when `network` is left empty and the runner
# auto-creates a per-job network that does not already exist. They have no effect # auto-creates a per-job network that does not already exist. They have no effect
# when a custom `network` name is set, because that network is used as-is and never # when a custom `network` name is set, because that network is used as-is and never
# created by the runner. Omit the entire block to use Docker's defaults. An auto-created # created by the runner. Omit the entire block to use Docker's defaults. An auto-created
# network is labelled com.gitea.runner.uuid=<this runner's uuid>, which is how the idle # network is labelled com.gitea.runner.uuid=<this runner's uuid>, which is how the idle
# cleanup tells its own leftovers apart from those of other runners on the same daemon. # cleanup tells its own leftovers apart from those of other runners on the same daemon.
network_create_options: #network_create_options:
enable_ipv4: true # Omit to use Docker's default (IPv4 enabled). Set false to disable IPv4. # enable_ipv4: true # Omit to use Docker's default (IPv4 enabled). Set false to disable IPv4.
enable_ipv6: false # Omit to use Docker's default (IPv6 disabled). Enabling it requires dockerd started with --ipv6. # enable_ipv6: false # Omit to use Docker's default (IPv6 disabled). Enabling it requires dockerd started with --ipv6.
# Whether to use privileged mode or not when launching task containers (privileged mode is required for Docker-in-Docker). # Whether to use privileged mode or not when launching task containers (privileged mode is required for Docker-in-Docker).
privileged: false #privileged: false
# Any other options to be used when the container is started, for example: # Any other options to be used when the container is started, for example:
# options: --add-host=my.gitea.url:host-gateway # options: --add-host=my.gitea.url:host-gateway
# A volume declared here replaces the one the runner mounts on the same container path, so the # A volume declared here replaces the one the runner mounts on the same container path, so the
# tool cache can be kept on the host. Its source must also be allowed by valid_volumes below: # tool cache can be kept on the host. Its source must also be allowed by valid_volumes below:
# options: --volume /host/toolcache:/opt/hostedtoolcache # options: --volume /host/toolcache:/opt/hostedtoolcache
options: #options:
# The parent directory of a job's working directory. # The parent directory of a job's working directory.
# NOTE: There is no need to add the first '/' of the path as runner will add it automatically. # NOTE: There is no need to add the first '/' of the path as runner will add it automatically.
# If the path starts with '/', the '/' will be trimmed. # If the path starts with '/', the '/' will be trimmed.
# For example, if the parent directory is /path/to/my/dir, workdir_parent should be path/to/my/dir # For example, if the parent directory is /path/to/my/dir, workdir_parent should be path/to/my/dir
# If it's empty, /workspace will be used. # If it's empty, /workspace will be used.
# Purely numeric subdirectories under this path are reserved for task workspaces and may be removed by idle cleanup. # Purely numeric subdirectories under this path are reserved for task workspaces and may be removed by idle cleanup.
workdir_parent: #workdir_parent:
# Volumes (including bind mounts) can be mounted to containers. Glob syntax is supported, see https://github.com/gobwas/glob # Volumes (including bind mounts) can be mounted to containers. Glob syntax is supported, see https://github.com/gobwas/glob
# You can specify multiple volumes. If the sequence is empty, no volumes can be mounted. # You can specify multiple volumes. If the sequence is empty, no volumes can be mounted.
# For example, if you only allow containers to mount the `data` volume and all the json files in `/src`, you should change the config to: # For example, if you only allow containers to mount the `data` volume and all the json files in `/src`, you should change the config to:
@@ -217,60 +215,63 @@ container:
# If you want to allow any volume, please use the following configuration: # If you want to allow any volume, please use the following configuration:
# valid_volumes: # valid_volumes:
# - '**' # - '**'
valid_volumes: [] #valid_volumes: []
# Overrides the docker client host with the specified one. # Overrides the docker client host with the specified one.
# If it's empty, runner will find an available docker host automatically. # If it's empty, runner will find an available docker host automatically.
# If it's "-", runner will find an available docker host automatically, but the docker host won't be mounted to the job containers and service containers. # If it's "-", runner will find an available docker host automatically, but the docker host won't be mounted to the job containers and service containers.
# If it's not empty or "-", the specified docker host will be used. An error will be returned if it doesn't work. # If it's not empty or "-", the specified docker host will be used. An error will be returned if it doesn't work.
docker_host: "" #docker_host: ""
# Pull docker image(s) even if already present. # Pull docker image(s) even if already present.
# Defaults to false when the key is omitted. # Defaults to false when the key is omitted.
# Two exceptions: an image pinned by digest (image@sha256:...) cannot change, so it is never # Two exceptions: an image pinned by digest (image@sha256:...) cannot change, so it is never
# re-pulled, and a pull that fails while a copy is already on the host does not fail the job, # re-pulled, and a pull that fails while a copy is already on the host does not fail the job,
# which runs on that copy with a warning in its log. # which runs on that copy with a warning in its log.
force_pull: false #force_pull: false
# Rebuild docker image(s) even if already present # Rebuild docker image(s) even if already present
force_rebuild: false #force_rebuild: false
# Always require a reachable docker daemon, even if not required by runner # Always require a reachable docker daemon, even if not required by runner
require_docker: false #require_docker: false
# Timeout to wait for the docker daemon to be reachable, if docker is required by require_docker or runner # Timeout to wait for the docker daemon to be reachable, if docker is required by require_docker or runner
docker_timeout: 0s #docker_timeout: 0s
# Bind the workspace to the host filesystem instead of using Docker volumes. # Bind the workspace to the host filesystem instead of using Docker volumes.
# This is required for Docker-in-Docker (DinD) setups when jobs use docker compose # This is required for Docker-in-Docker (DinD) setups when jobs use docker compose
# with bind mounts (e.g., ".:/app"), as volume-based workspaces are not accessible # with bind mounts (e.g., ".:/app"), as volume-based workspaces are not accessible
# from the DinD daemon's filesystem. When enabled, ensure the workspace parent # from the DinD daemon's filesystem. When enabled, ensure the workspace parent
# directory is also mounted into the runner container and listed in valid_volumes. # directory is also mounted into the runner container and listed in valid_volumes.
bind_workdir: false #bind_workdir: false
# How long a job waits for a service container that declares a healthcheck to become
# healthy. A negative value (e.g. -1s) starts the steps without waiting.
#service_ready_timeout: 5m
host: host:
# The parent directory of a job's working directory. # The parent directory of a job's working directory.
# If it's empty, $HOME/.cache/act/ will be used. # If it's empty, $HOME/.cache/act/ will be used.
workdir_parent: #workdir_parent:
# Optional local task-admission checks. Disabled by default. When enabled, low # Optional local task-admission checks. Disabled by default. When enabled, low
# disk space or a failing script pauses new task fetching; existing jobs continue. # disk space or a failing script pauses new task fetching; existing jobs continue.
# No health checks run while any job is active; the last result is reused until idle. # No health checks run while any job is active; the last result is reused until idle.
health_check: health_check:
enabled: false #enabled: false
# Minimum free space required on the filesystem holding runner workspaces. # Minimum free space required on the filesystem holding runner workspaces.
# Defaults to 1024 MiB when omitted or set to zero. # Defaults to 1024 MiB when omitted or set to zero.
min_free_disk_space_mb: 1024 #min_free_disk_space_mb: 1024
# Optional additional executable. A non-zero exit, timeout, or startup failure # Optional additional executable. A non-zero exit, timeout, or startup failure
# marks the runner unavailable. # marks the runner unavailable.
script: '' #script: ''
# How long a script result is cached and its maximum execution time. # How long a script result is cached and its maximum execution time.
interval: 30s #interval: 30s
timeout: 10s #timeout: 10s
metrics: metrics:
# Enable the Prometheus metrics endpoint. # Enable the Prometheus metrics endpoint.
# When enabled, metrics are served at /metrics, liveness at /healthz, and # When enabled, metrics are served at /metrics, liveness at /healthz, and
# task-admission readiness at /readyz. # task-admission readiness at /readyz.
enabled: false #enabled: false
# The address for the metrics HTTP server to listen on. # The address for the metrics HTTP server to listen on.
# Defaults to localhost only. Set to ":9101" to allow external access, # Defaults to localhost only. Set to ":9101" to allow external access,
# but ensure the port is firewall-protected as there is no authentication. # but ensure the port is firewall-protected as there is no authentication.
addr: "127.0.0.1:9101" #addr: "127.0.0.1:9101"
# Consecutive polling failures may last this long before /readyz returns 503. # Consecutive polling failures may last this long before /readyz returns 503.
readiness_grace: 30s #readiness_grace: 30s
``` ```