Variables
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
| 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
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
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
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
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
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
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
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.