0
0
mirror of https://github.com/go-gitea/gitea.git synced 2024-12-05 18:06:41 +01:00
gitea/docs/content/usage/actions/comparison.en-us.md
delvh 24a215e317
Remove outdated paragraphs when comparing Gitea Actions to GitHub Actions (#27119)
No backport needed as this new state only applies to 1.21+

---------

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
2023-09-20 11:02:58 +08:00

5.7 KiB

date title slug sidebar_position draft toc menu
2023-04-27T15:00:00+08:00 Compared to GitHub Actions comparison 30 false false
sidebar
parent name sidebar_position identifier
actions Comparison 30 actions-comparison

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@v3 or uses: http://your_gitea.com/owner/repo@branch.

Actions written in Go

Gitea Actions supports writing actions in Go. See Creating Go Actions.

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.

workflow_dispatch

See Workflow syntax for GitHub Actions.

It's ignored by Gitea Actions 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

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.

Missing UI features

Pre and Post steps

Pre and Post 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@v3, 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@v3.

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.

Known issues

docker/build-push-action@v4

See act_runner#119.

ACTIONS_RUNTIME_TOKEN is a random string in Gitea Actions, not a JWT. But the docker/build-push-action@v4 tries to parse the token as JWT and doesn't handle the error, so the job fails.

There are two workarounds:

Set the ACTIONS_RUNTIME_TOKEN to empty manually, like:

- name: Build and push
  uses: docker/build-push-action@v4
  env:
    ACTIONS_RUNTIME_TOKEN: ''
  with:
...

The bug has been fixed in a newer commit, but it has not been released. So you could use the latest version by specifying the branch name, like:

- name: Build and push
  uses: docker/build-push-action@master
  with:
...