forgejo-runner

git clone git://git.lin.moe/forgejo-runner.git

  1# Example configuration file, it's safe to copy this as the default config file without any modification.
  2
  3# You don't have to copy this file to your instance,
  4# just run `forgejo-runner generate-config > config.yaml` to generate a config file.
  5
  6log:
  7  # The level of logging, can be trace, debug, info, warn, error, fatal
  8  level: info
  9
 10runner:
 11  # Where to store the registration result.
 12  file: .runner
 13  # Execute how many tasks concurrently at the same time.
 14  capacity: 1
 15  # Extra environment variables to run jobs.
 16  envs:
 17    A_TEST_ENV_NAME_1: a_test_env_value_1
 18    A_TEST_ENV_NAME_2: a_test_env_value_2
 19  # Extra environment variables to run jobs from a file.
 20  # It will be ignored if it's empty or the file doesn't exist.
 21  env_file: .env
 22  # The timeout for a job to be finished.
 23  # Please note that the Forgejo instance also has a timeout (3h by default) for the job.
 24  # So the job could be stopped by the Forgejo instance if it's timeout is shorter than this.
 25  timeout: 3h
 26  # The timeout for the runner to wait for running jobs to finish when
 27  # shutting down because a TERM or INT signal has been received.  Any
 28  # running jobs that haven't finished after this timeout will be
 29  # cancelled.
 30  # If unset or zero the jobs will be cancelled immediately.
 31  shutdown_timeout: 3h
 32  # Whether skip verifying the TLS certificate of the instance.
 33  insecure: false
 34  # The timeout for fetching the job from the Forgejo instance.
 35  fetch_timeout: 5s
 36  # The interval for fetching the job from the Forgejo instance.
 37  fetch_interval: 2s
 38  # The interval for reporting the job status and logs to the Forgejo instance.
 39  report_interval: 1s
 40  # The labels of a runner are used to determine which jobs the runner can run, and how to run them.
 41  # Like: ["macos-arm64:host", "ubuntu-latest:docker://node:20-bookworm", "ubuntu-22.04:docker://node:20-bookworm"]
 42  # If it's empty when registering, it will ask for inputting labels.
 43  # If it's empty when executing the `daemon`, it will use labels in the `.runner` file.
 44  labels: []
 45
 46cache:
 47  # Enable cache server to use actions/cache.
 48  enabled: true
 49  # The directory to store the cache data.
 50  # If it's empty, the cache data will be stored in $HOME/.cache/actcache.
 51  dir: ""
 52  # The host of the cache server.
 53  # It's not for the address to listen, but the address to connect from job containers.
 54  # So 0.0.0.0 is a bad choice, leave it empty to detect automatically.
 55  host: ""
 56  # The port of the cache server.
 57  # 0 means to use a random available port.
 58  port: 0
 59  # The external cache server URL. Valid only when enable is true.
 60  # If it's specified, it will be used to set the ACTIONS_CACHE_URL environment variable. The URL should generally end with "/".
 61  # Otherwise it will be set to the the URL of the internal cache server.
 62  external_server: ""
 63
 64container:
 65  # Specifies the network to which the container will connect.
 66  # Could be host, bridge or the name of a custom network.
 67  # If it's empty, create a network automatically.
 68  network: ""
 69  # Whether to create networks with IPv6 enabled. Requires the Docker daemon to be set up accordingly.
 70  # Only takes effect if "network" is set to "".
 71  enable_ipv6: false
 72  # Whether to use privileged mode or not when launching task containers (privileged mode is required for Docker-in-Docker).
 73  privileged: false
 74  # And other options to be used when the container is started (eg, --add-host=my.forgejo.url:host-gateway).
 75  options:
 76  # The parent directory of a job's working directory.
 77  # If it's empty, /workspace will be used.
 78  workdir_parent:
 79  # Volumes (including bind mounts) can be mounted to containers. Glob syntax is supported, see https://github.com/gobwas/glob
 80  # You can specify multiple volumes. If the sequence is empty, no volumes can be mounted.
 81  # 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:
 82  # valid_volumes:
 83  #   - data
 84  #   - /src/*.json
 85  # If you want to allow any volume, please use the following configuration:
 86  # valid_volumes:
 87  #   - '**'
 88  valid_volumes: []
 89  # overrides the docker client host with the specified one.
 90  # If "-", an available docker host will automatically be found.
 91  # If empty, an available docker host will automatically be found and mounted in the job container (e.g. /var/run/docker.sock).
 92  # Otherwise the specified docker host will be used and an error will be returned if it doesn't work.
 93  docker_host: "-"
 94  # Pull docker image(s) even if already present
 95  force_pull: false
 96
 97host:
 98  # The parent directory of a job's working directory.
 99  # If it's empty, $HOME/.cache/act/ will be used.
100  workdir_parent: