Files
Lunny Xiao ba60edbbda Add version v28 (#564)
<!-- cloudflare-preview --> Preview: https://pr-564.docs-gitea-com.pages.dev

Reviewed-on: https://gitea.com/gitea/docs/pulls/564
Reviewed-by: bircni <[email protected]>
Co-authored-by: Lunny Xiao <[email protected]>
2026-09-30 06:40:44 +00:00

4.2 KiB

date, slug, sidebar_position
date slug sidebar_position
2023-04-27T15:00:00+08:00 comparison 120

Compared to GitHub Actions

Gitea Actions is designed to be compatible with GitHub Actions, with the differences below.

Additional features

Absolute action URLs

uses: accepts an absolute URL to any git host, e.g. uses: https://gitea.com/actions/checkout@v4.

Action prefixes

uses: accepts these prefixes:

  • self: references your own Gitea instance, e.g. uses: self:owner/repo@v1 or uses: self:owner/repo/.gitea/workflows/build.yml@v1
  • builtin: runs an action built into Gitea Runner, which needs no download and no Node in the job image, e.g. uses: builtin:checkout

builtin:checkout accepts the repository, ref, token, path and fetch-depth inputs of actions/checkout with the same defaults, and fails on any other input.

Workflow-relative actions

$/ references the repository and commit of the workflow, or of the enclosing composite action, e.g. uses: $/.gitea/actions/build. Unlike ./, it needs no checkout first.

Actions written in Go

See Creating Go Actions.

Support the non-standard syntax @yearly, @monthly, @weekly, @daily, @hourly on schedule

schedule also accepts @yearly, @monthly, @weekly, @daily and @hourly, which GitHub does not.

Unsupported workflows syntax

jobs.<job_id>.environment

jobs.<job_id>.environment is ignored.

Complex runs-on

runs-on supports:

  • Static strings: runs-on: self-hosted
  • Arrays of labels: runs-on: [linux, self-hosted]
  • String expressions: runs-on: ${{ github.event_name == 'push' && 'ubuntu-latest' || 'self-hosted' }}
  • Arrays containing expressions: runs-on: [linux, "${{ github.event_name == 'push' && 'ubuntu-latest' || 'self-hosted' }}"]

Missing features

Package repository authorization

GITEA_TOKEN cannot publish to the package registry of its repository, e.g. to push OCI images. Use a personal access token instead, see this issue.

Problem Matchers

Problem matchers are ignored.

Create an error annotation

Error annotations are ignored.

Expressions

Expressions support the standard GitHub functions and contexts.

Missing UI features

Pre and Post steps

Pre and post steps have no section of their own in the job log.

Services steps

Service steps have no section of their own in the job log.

Different behavior

Job token permissions (permissions)

permissions and jobs.<job_id>.permissions control the GITEA_TOKEN permissions, clamped by the repository and owner settings and further restricted for fork pull requests and cross-repository access. GitHub-only scopes like statuses, checks, deployments, id-token, security-events and pages are not supported, while Gitea adds code, releases, wiki and projects. See Actions job token permissions.

Downloading actions

Actions without a host, like uses: actions/checkout@v4, are downloaded from https://github.com, or from your own instance when [actions].DEFAULT_ACTIONS_URL is self. See the Configuration Cheat Sheet. For other sources, see Absolute action URLs, Action prefixes and Workflow-relative actions.

Context availability

Context availability is not checked, so contexts like env work in more places.