Variables
Environment variables
Section titled “Environment variables”These environment variables are set automatically in every workflow run and can be accessed directly (e.g. $CI in shell scripts).
| Name | Description | Example |
|---|---|---|
CI |
Always set to true. |
true |
GITEA_ACTIONS |
Always set to true. Useful to distinguish Gitea Actions from other CI systems. |
true |
GITEA_ACTIONS_RUNNER_VERSION |
The version of the runner executing the workflow. | 1.0.8 |
GITEA_ENVGITHUB_ENV |
Path to the file that sets environment variables for subsequent steps. | /home/runner/work/_temp/_runner_file_commands/set_env_*** |
GITEA_OUTPUTGITHUB_OUTPUT |
Path to the file that sets step output parameters. | /home/runner/work/_temp/_runner_file_commands/set_output_*** |
GITEA_PATHGITHUB_PATH |
Path to the file that adds system PATH entries for subsequent steps. |
/home/runner/work/_temp/_runner_file_commands/add_path_*** |
GITEA_STATEGITHUB_STATE |
Path to the file that sets step state variables. | /home/runner/work/_temp/_runner_file_commands/save_state_*** |
GITEA_STEP_SUMMARYGITHUB_STEP_SUMMARY |
Path to the file for writing job summaries. | /home/runner/work/_temp/_runner_file_commands/step_summary_*** |
GITHUB_ACTIONS |
Always set to true. |
true |
GITHUB_ACTION |
The name of the action currently running, or the step id. |
__run |
GITHUB_ACTION_PATH |
The path where the action is located. | /home/runner/work/_actions/actions/checkout/v4 |
GITHUB_ACTION_REF |
The ref of the action being executed. | v4 |
GITHUB_ACTION_REPOSITORY |
The owner and repository of the action. | actions/checkout |
GITHUB_ACTOR |
The username of the user that triggered the workflow. | silverwind |
GITHUB_API_URL |
The URL of the REST API. | https://gitea.com/api/v1 |
GITHUB_BASE_REF |
The target branch of a pull request. | main |
GITHUB_EVENT_NAME |
The name of the event that triggered the workflow. | push |
GITHUB_EVENT_PATH |
Path to the file containing the event webhook payload. | /home/runner/work/_temp/_github_workflow/event.json |
GITHUB_GRAPHQL_URL |
Empty in Gitea (GraphQL is not supported). | (empty) |
GITHUB_HEAD_REF |
The source branch of a pull request. | feature-branch |
GITHUB_JOB |
The job_id of the current job. |
build |
GITHUB_REF |
The fully-formed ref that triggered the workflow. | refs/heads/main |
GITHUB_REF_NAME |
The short ref name. | main |
GITHUB_REF_TYPE |
The type of ref: branch or tag. |
branch |
GITHUB_REPOSITORY |
The owner and repository name. | gitea/docs |
GITHUB_REPOSITORY_OWNER |
The repository owner’s username. | gitea |
GITHUB_RETENTION_DAYS |
The number of days that workflow run logs and artifacts are kept. | 90 |
GITHUB_RUN_ATTEMPT |
The attempt number of the workflow run. | 1 |
GITHUB_RUN_ID |
A unique number for each workflow run. | 1234 |
GITHUB_RUN_NUMBER |
A unique number for each run of a particular workflow. | 42 |
GITHUB_SERVER_URL |
The URL of the Gitea instance. | https://gitea.com |
GITHUB_SHA |
The commit SHA that triggered the workflow. | a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2 |
GITHUB_WORKFLOW |
The name of the workflow. | CI |
GITHUB_WORKSPACE |
The default working directory on the runner. | /workspace/gitea/docs |
Runner environment variables
Section titled “Runner environment variables”| Name | Description | Example |
|---|---|---|
RUNNER_ARCH |
The architecture of the runner. | X64 |
RUNNER_OS |
The operating system of the runner. | Linux |
RUNNER_TEMP |
Path to a temporary directory on the runner. | /tmp |
RUNNER_TOOL_CACHE |
Path to the tool cache directory on the runner. | /opt/hostedtoolcache |
Internal environment variables
Section titled “Internal environment variables”These are used internally by the runner and actions. They are typically not needed in workflows directly.
| Name | Description | Example |
|---|---|---|
ACTIONS_CACHE_URL |
URL for the actions cache service. | http://192.168.1.10:8088/ |
ACTIONS_ID_TOKEN_REQUEST_TOKEN |
Token for OIDC requests. Only set when configured. | *** |
ACTIONS_ID_TOKEN_REQUEST_URL |
URL to request OIDC tokens. Only set when configured. | https://gitea.com/login/oauth/access_token |
ACTIONS_RESULTS_URL |
URL for storing artifacts. | https://gitea.com |
ACTIONS_RUNTIME_TOKEN |
Authentication token for the Actions pipeline API. | *** |
ACTIONS_RUNTIME_URL |
URL for the Gitea Actions pipeline API. | https://gitea.com/api/actions_pipeline/ |
Context variables
Section titled “Context variables”These variables are available in workflow expressions via ${{ gitea.<name> }}. For compatibility, ${{ github.<name> }} works as an alias.
| Name | Description | Example |
|---|---|---|
gitea.actiongithub.action |
The name of the action currently running, or the id of a step. |
__run |
gitea.action_pathgithub.action_path |
The path where an action is located. Only supported in composite actions. | /home/runner/work/_actions/actions/checkout/v4 |
gitea.action_refgithub.action_ref |
The ref of the action being executed. | v4 |
gitea.action_repositorygithub.action_repository |
The owner and repository name of the action. | actions/checkout |
gitea.action_statusgithub.action_status |
The current result of a composite action. | success |
gitea.actorgithub.actor |
The username of the user that triggered the initial workflow run. | silverwind |
gitea.api_urlgithub.api_url |
The URL of the REST API. | https://gitea.com/api/v1 |
gitea.base_refgithub.base_ref |
The target branch of a pull request. Only set for pull_request and pull_request_target events. |
main |
gitea.envgithub.env |
Path on the runner to the file that sets environment variables from workflow commands. Unique to each step. | /home/runner/work/_temp/_runner_file_commands/set_env_*** |
gitea.eventgithub.event |
The full event webhook payload as an object. See Event payload. | {...} |
gitea.event_namegithub.event_name |
The name of the event that triggered the workflow run. | push |
gitea.event_pathgithub.event_path |
Path on the runner to the file containing the full event webhook payload. | /home/runner/work/_temp/_github_workflow/event.json |
gitea.head_refgithub.head_ref |
The source branch of a pull request. Only set for pull_request and pull_request_target events. |
feature-branch |
gitea.jobgithub.job |
The job_id of the current job. |
build |
gitea.refgithub.ref |
The fully-formed ref that triggered the workflow. | refs/heads/main |
gitea.ref_namegithub.ref_name |
The short ref name. | main |
gitea.ref_protectedgithub.ref_protected |
true if branch protections are configured for the ref that triggered the workflow run. |
true |
gitea.ref_typegithub.ref_type |
The type of ref: branch or tag. |
branch |
gitea.pathgithub.path |
Path on the runner to the file that sets system PATH variables from workflow commands. Unique to each step. |
/home/runner/work/_temp/_runner_file_commands/add_path_*** |
gitea.repositorygithub.repository |
The owner and repository name. | gitea/docs |
gitea.repository_ownergithub.repository_owner |
The repository owner’s username. | gitea |
gitea.repositoryUrlgithub.repositoryUrl |
The HTML URL to the repository. | https://gitea.com/gitea/docs |
gitea.retention_daysgithub.retention_days |
The number of days that workflow run logs and artifacts are kept. | 90 |
gitea.run_idgithub.run_id |
A unique number for each workflow run within a repository. Does not change on re-run. | 1234 |
gitea.run_numbergithub.run_number |
A unique number for each run of a particular workflow. Starts at 1 and increments with each new run. | 42 |
gitea.run_attemptgithub.run_attempt |
A unique number for each re-run attempt. Starts at 1 and increments with each re-run. | 1 |
gitea.secret_sourcegithub.secret_source |
The source of a secret used in a workflow. Always Actions in Gitea. |
Actions |
gitea.server_urlgithub.server_url |
The URL of the Gitea instance. | https://gitea.com |
gitea.shagithub.sha |
The commit SHA that triggered the workflow. | a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2 |
gitea.tokengithub.token |
A token to authenticate on behalf of the Gitea App installed on the repository. See Token permissions. | ghs_*** |
gitea.triggering_actorgithub.triggering_actor |
The username of the user that initiated the workflow run. May differ from actor on re-runs. |
silverwind |
gitea.workflowgithub.workflow |
The name of the workflow. If unnamed, the full path of the workflow file. | CI |
gitea.workspacegithub.workspace |
The default working directory on the runner and the default location of your repository when using the checkout action. |
/workspace/gitea/docs |
gitea.gitea_default_actions_url |
The default URL for downloading actions. Gitea-specific. | https://github.com |
Event payload
Section titled “Event payload”gitea.event is the webhook payload of the event that triggered the run, so which fields exist depends on gitea.event_name.
The same payload is written as JSON to the file at gitea.event_path.
Payloads use Gitea’s webhook format, which is close to GitHub’s but not identical. Differences are noted below.
Reading a field that the payload does not have returns an empty value instead of failing, so ${{ gitea.event.pull_request.number }} is empty on a push run.
These fields exist in almost every payload:
| Name | Description | Example |
|---|---|---|
gitea.event.action |
The activity type. Only set for events that have activity types, see supported events. | opened |
gitea.event.repository.full_name |
The owner and name of the repository. | gitea/docs |
gitea.event.repository.default_branch |
The default branch of the repository. | main |
gitea.event.repository.private |
Whether the repository is private. | false |
gitea.event.repository.html_url |
The HTML URL of the repository. | https://gitea.com/gitea/docs |
gitea.event.sender.login |
The username of the user that triggered the event. Also available as sender.username. |
silverwind |
The remaining fields are specific to one or a few events:
| Name | Events | Description | Example |
|---|---|---|---|
gitea.event.schedule |
schedule |
The cron expression that triggered the run. | */5 * * * * |
gitea.event.inputs.<name> |
workflow_dispatch, workflow_call |
A raw input value. Prefer ${{ inputs.<name> }}, which also applies the input’s default. |
true |
gitea.event.workflow |
workflow_dispatch |
The file name of the dispatched workflow. | ci.yaml |
gitea.event.ref |
push, create, delete, workflow_dispatch |
The ref of the event. Unlike GitHub, create and delete use the full ref instead of the short name. |
refs/heads/main |
gitea.event.ref_type |
create, delete |
The type of ref: branch or tag. |
tag |
gitea.event.beforegitea.event.after |
push |
The commit SHA before and after the push. | a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2 |
gitea.event.commits |
push |
The commits contained in the push, each with id, message, url, author, added, removed and modified. |
[{...}] |
gitea.event.head_commit.message |
push |
The message of the most recent commit of the push. | fix: broken link |
gitea.event.total_commits |
push |
The number of commits in the push. Gitea-specific. | 3 |
gitea.event.compare_url |
push |
The URL comparing before with after. GitHub names this field compare. |
https://gitea.com/gitea/docs/compare/a1b2c3d...e5f6a1b |
gitea.event.pusher.login |
push |
The username of the user that pushed. | silverwind |
gitea.event.forkee.full_name |
fork |
The owner and name of the new fork. | silverwind/docs |
gitea.event.page |
gollum |
The name of the wiki page. | Home |
gitea.event.number |
issues, pull_request, pull_request_target, pull_request_review, pull_request_review_comment |
The index of the issue or pull request. Not set for issue_comment, use gitea.event.issue.number there. |
386 |
gitea.event.issue.numbergitea.event.issue.titlegitea.event.issue.bodygitea.event.issue.stategitea.event.issue.labelsgitea.event.issue.user.login |
issues, issue_comment |
The issue the event happened on. | Expand gitea.event in actions docs |
gitea.event.comment.body |
issue_comment |
The body of the comment. | LGTM |
gitea.event.is_pull |
issue_comment |
Whether the comment was made on a pull request. Gitea-specific, GitHub sets issue.pull_request on the issue object instead. |
true |
gitea.event.pull_request.numbergitea.event.pull_request.titlegitea.event.pull_request.bodygitea.event.pull_request.draftgitea.event.pull_request.mergedgitea.event.pull_request.stategitea.event.pull_request.labelsgitea.event.pull_request.user.login |
pull_request, pull_request_target, pull_request_review, pull_request_review_comment |
The pull request the event happened on. | Add caching to CI |
gitea.event.pull_request.head.refgitea.event.pull_request.head.shagitea.event.pull_request.head.repo.full_name |
pull_request, pull_request_target, pull_request_review, pull_request_review_comment |
The source branch of the pull request. | feature-branch |
gitea.event.pull_request.base.refgitea.event.pull_request.base.sha |
pull_request, pull_request_target, pull_request_review, pull_request_review_comment |
The target branch of the pull request. | main |
gitea.event.review.type |
pull_request_review, pull_request_review_comment |
The kind of review: pull_request_review_approved, pull_request_review_rejected or pull_request_review_comment. GitHub uses review.state with the values approved, changes_requested and commented. |
pull_request_review_approved |
gitea.event.review.content |
pull_request_review, pull_request_review_comment |
The body of the review. GitHub names this field review.body. |
Ship it |
gitea.event.changes.title.fromgitea.event.changes.body.from |
issues, issue_comment, pull_request |
The previous value. Only set when action is edited. |
Old title |
gitea.event.release.tag_namegitea.event.release.namegitea.event.release.bodygitea.event.release.draftgitea.event.release.prerelease |
release |
The release the event happened on. | v1.2.3 |
gitea.event.package.namegitea.event.package.typegitea.event.package.version |
registry_package |
The package the event happened on. | gitea |
gitea.event.workflow_run.idgitea.event.workflow_run.eventgitea.event.workflow_run.statusgitea.event.workflow_run.conclusiongitea.event.workflow_run.head_branchgitea.event.workflow_run.head_sha |
workflow_run |
The workflow run that the event reports on. | success |
schedule runs have no webhook of their own. Their payload is the payload of the push that registered the schedule, with schedule, repository, sender and, for organization-owned repositories, organization filled in.
Only those fields are meaningful, and sender.login is always gitea-actions.
User-defined variables
Section titled “User-defined variables”You can create configuration variables on the user, organization and repository level. The level of the variable depends on where you created it. When creating a variable, the key will be converted to uppercase. You need use uppercase on the yaml file.
Naming conventions
Section titled “Naming conventions”The following rules apply to variable names:
- Variable names can only contain alphanumeric characters (
[a-z],[A-Z],[0-9]) or underscores (_). Spaces are not allowed. - Variable names must not start with the
GITHUB_andGITEA_prefix. - Variable names must not start with a number.
- Variable names are case-insensitive.
- Variable names must be unique at the level they are created at.
- Variable names must not start with
CI.
Using variables
Section titled “Using variables”After creating configuration variables, they will be automatically filled in the vars context.
They can be accessed through expressions like ${{ vars.VARIABLE_NAME }} in the workflow.
Precedence
Section titled “Precedence”If a variable with the same name exists at multiple levels, the variable at the lowest level takes precedence: A repository variable will always be chosen over an organization/user variable.