Compared to GitHub Actions
Even though Gitea Actions is designed to be compatible with GitHub Actions, there are some differences between them.
Additional features
Absolute action URLs
Gitea Actions supports defining actions via absolute URL, which means that you can use actions from any git repository.
Like uses: https://github.com/actions/checkout@v4
or uses: http://your_gitea.com/owner/repo@branch
.
Actions written in Go
Gitea Actions supports writing actions in Go. See Creating Go Actions.
Support the non-standard syntax @yearly, @monthly, @weekly, @daily, @hourly on schedule
Github Actions doesn't support that. https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule
Unsupported workflows syntax
concurrency
It's used to run a single job at a time. See Using concurrency.
It's ignored by Gitea Actions now.
run-name
The name for workflow runs generated from the workflow. See Workflow syntax for GitHub Actions.
It's ignored by Gitea Actions now.
permissions
and jobs.<job_id>.permissions
See Workflow syntax for GitHub Actions.
It's ignored by Gitea Actions now.
jobs.<job_id>.timeout-minutes
See Workflow syntax for GitHub Actions.
It's ignored by Gitea Actions now.
jobs.<job_id>.continue-on-error
See Workflow syntax for GitHub Actions.
It's ignored by Gitea Actions now.
jobs.<job_id>.environment
See Workflow syntax for GitHub Actions.
It's ignored by Gitea Actions now.
Complex runs-on
See Workflow syntax for GitHub Actions.
Gitea Actions only supports runs-on: xyz
or runs-on: [xyz]
now.
hashFiles
expression
See Expressions
Gitea Actions doesn't support it now, if you use it, the result will always be empty string.
As a workaround, you can use go-hashfiles instead.
Missing features
Package repository authorization
The GITEA_TOKEN
for a job running within a repository should be able to publish to the associated package repository (i.e. to upload OCI images). See the "packages" scope for the "default access" in Automatic token authentication.
This is not implemented in Gitea Actions now. A workaround for Gitea Actions is to use a Personal Access Token (PAT). See this github issue and comment for tracking this feature.
Problem Matchers
Problem Matchers are a way to scan the output of actions for a specified regex pattern and surface that information prominently in the UI. See Problem matchers.
It's ignored by Gitea Actions now.
Create an error annotation
See Creating an annotation for an error
It's ignored by Gitea Actions now.
Expressions
For expressions, only always()
is supported.
Missing UI features
Pre and Post steps
Pre and Post steps don't have their own section in the job log user interface.
Services steps
Services steps don't have their own section in the job log user interface.
Different behavior
Downloading actions
Previously (Pre 1.21.0), [actions].DEFAULT_ACTIONS_URL
defaulted to https://gitea.com
.
We have since restricted this option to only allow two values (github
and self
).
When set to github
, the new default, Gitea will download non-fully-qualified actions from https://github.com
.
For example, if you use uses: actions/checkout@v4
, it will download the checkout repository from https://github.com/actions/checkout.git
.
If you want to download an action from another git hoster, you can use an absolute URL, e.g. uses: https://gitea.com/actions/checkout@v4
.
If your Gitea instance is in an intranet or a restricted area, you can set the URL to self
to only download actions from your own instance by default.
Of course, you can still use absolute URLs in workflows.
More details about the [actions].DEFAULT_ACTIONS_URL
configuration can be found in the Configuration Cheat Sheet。
Context availability
Context availability is not checked, so you can use the env context on more places. See Context availability.