Skip to main content
Version: 1.23-dev

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.