Forgejo Actions administrator guide
Forgejo Actions provides continuous integration driven from the files found in the .forgejo/workflows directory of a
repository. Note that Forgejo does not run the jobs, it relies on the Forgejo Runner to do so.
Forgejo Runner
The Forgejo Runner is a program that fetches workflows to run from a Forgejo instance and executes them. It is
installed and configured separately from Forgejo.
To get started with Forgejo Runner:
- Install
Forgejo Runner- using a binary installation, or
- using a Docker container, or
- using Linux distribution packaged binaries.
- Register
Forgejo Runnerto connect it to Forgejo, - Configure
Forgejo Runnerto define what jobs it executes and how it operates.- Choosing labels for the runner is the minimum required configuration.
A single Forgejo Runner can be connected to multiple Forgejo instances, or different users, organizations, or
repositories within a single instance. Multiple Forgejo Runner installations can be connected to a single Forgejo
instance to distribute jobs over a cluster of available compute resources.
Forgejo Runner performs remote code execution. That poses significant security threats for the host and network that
it operates upon. Securing Forgejo Actions Deployments walks through the security considerations and
choices that an administrator should be aware of.
To build container images in workflows or run actions that use Docker, additional configuration is required.
Forgejo Settings
Enabling/Disabling
As of Forgejo v1.21, Actions is enabled by default. It can be disabled by adding the following to app.ini:
[actions]
ENABLED = false
Default Actions URL
In a workflow, when uses: does not specify an absolute URL, the
value of DEFAULT_ACTIONS_URL is prepended to it.
[actions]
ENABLED = true
DEFAULT_ACTIONS_URL = https://data.forgejo.org
The actions published at https://data.forgejo.org are:
- known to work with Forgejo Actions
- published under a Free Software license
They can be found in organizations such as actions for general purpose actions, docker for those related to Docker and so on.
When setting DEFAULT_ACTIONS_URL to a Forgejo instance with an open
registration, care must be taken to avoid name conflicts. For
instance if an action has uses: foo/bar@main it will clone and try
to run the action found at DEFAULT_ACTIONS_URL/foo/bar if it exists,
even if it provides something different than what is expected.
Storage
The logs and artifacts are stored in Forgejo. The cache is stored by
the runner itself and never sent to Forgejo.
job logs
The logs of each job run is stored by the Forgejo server and
expire after a delay that defaults to 365 days and can be configured as
follows:
[actions]
LOG_RETENTION_DAYS = 365
The location where these files are stored is configured in
the storage.actions_log section of app.ini as explained in in the
storage documentation.
artifacts logs
The artifacts uploaded by a job are stored by the Forgejo server and
expire after a delay that defaults to 90 days and can be configured as
follows:
[actions]
ARTIFACT_RETENTION_DAYS = 90
The location where these artifacts are stored is configured in
the storage.artifacts section of app.ini as explained in in the
storage documentation.
The admin/monitor/cron administration web interface can be used to
manually trigger the Cleanup actions expired logs and artifacts task
instead of waiting for the scheduled task to happen.
Other runners
It is possible to use other runners instead of Forgejo Runner. As long as they can connect to a Forgejo instance using the same protocol, they will be given tasks to run.