mirror of
https://gitea.com/gitea/docs.git
synced 2026-11-07 18:40:32 +00:00
`$/` is [GitHub's self-repository prefix](https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#example-using-an-action-in-the-same-repository-as-the-workflow-at-the-running-commit-recommended) with the same semantics, so it is no Gitea addition. The `builtin:checkout` input list was outdated since https://gitea.com/gitea/runner/pulls/1277 made it match `actions/checkout`. Reviewed-on: https://gitea.com/gitea/docs/pulls/638 Reviewed-by: Lunny Xiao <[email protected]> Co-authored-by: silverwind <[email protected]>
93 lines
3.8 KiB
Markdown
93 lines
3.8 KiB
Markdown
---
|
|
date: "2023-04-27T15:00:00+08:00"
|
|
slug: "comparison"
|
|
sidebar_position: 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 does not depend on Node.js, e.g. `uses: builtin:checkout`
|
|
|
|
### Actions written in Go
|
|
|
|
See [Creating Go Actions](https://blog.gitea.com/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](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule).
|
|
|
|
## Unsupported workflows syntax
|
|
|
|
### `jobs.<job_id>.environment`
|
|
|
|
[`jobs.<job_id>.environment`](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idenvironment) is ignored.
|
|
|
|
### Complex `runs-on`
|
|
|
|
[`runs-on`](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-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](https://github.com/go-gitea/gitea/issues/23642#issuecomment-2119876692).
|
|
|
|
### Problem Matchers
|
|
|
|
[Problem matchers](https://github.com/actions/toolkit/blob/main/docs/problem-matchers.md) are ignored.
|
|
|
|
### Create an error annotation
|
|
|
|
[Error annotations](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#example-creating-an-annotation-for-an-error) are ignored.
|
|
|
|
### Expressions
|
|
|
|
[Expressions](https://docs.github.com/en/actions/learn-github-actions/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](token-permissions.md).
|
|
|
|
### 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](../../administration/config-cheat-sheet.md#actions-actions).
|
|
For other sources, see [Absolute action URLs](#absolute-action-urls) and [Action prefixes](#action-prefixes).
|
|
|
|
### Context availability
|
|
|
|
[Context availability](https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability) is not checked, so contexts like `env` work in more places.
|