aboutsummaryrefslogtreecommitdiffstats
path: root/docs/content/doc/actions/comparison.en-us.md
diff options
context:
space:
mode:
authorJason Song <i@wolfogre.com>2023-05-06 04:07:20 +0800
committerGitHub <noreply@github.com>2023-05-05 20:07:20 +0000
commit8f314c679309e5a64928ef70443ddddaae6a803a (patch)
tree24ce0da5e3125bbe1e1837c14f3789ebdf3cfe90 /docs/content/doc/actions/comparison.en-us.md
parentb8c19e7a11525da4174b6f80f87ff3e844d03d8a (diff)
downloadgitea-8f314c679309e5a64928ef70443ddddaae6a803a.tar.gz
gitea-8f314c679309e5a64928ef70443ddddaae6a803a.zip
Docs for Gitea Actions (#24405)
A new documentation section for Gitea Actions. Some content comes from: - [Hacking on Gitea Actions](https://blog.gitea.io/2023/03/hacking-on-gitea-actions/) - The README of [act_runner](https://gitea.com/gitea/act_runner) - @ChristopherHX's excellent overview of the differences between Gitea Actions and GitHub Actions in [this comment](https://github.com/go-gitea/gitea/issues/13539#issuecomment-1448888850). --------- Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'docs/content/doc/actions/comparison.en-us.md')
-rw-r--r--docs/content/doc/actions/comparison.en-us.md171
1 files changed, 171 insertions, 0 deletions
diff --git a/docs/content/doc/actions/comparison.en-us.md b/docs/content/doc/actions/comparison.en-us.md
new file mode 100644
index 0000000000..f916440af5
--- /dev/null
+++ b/docs/content/doc/actions/comparison.en-us.md
@@ -0,0 +1,171 @@
+---
+date: "2023-04-27T15:00:00+08:00"
+title: "Compared to GitHub Actions"
+slug: "usage/actions/comparison"
+weight: 30
+draft: false
+toc: false
+menu:
+ sidebar:
+ parent: "actions"
+ name: "Comparison"
+ weight: 30
+ identifier: "actions-comparison"
+---
+
+# Compared to GitHub Actions
+
+Even though Gitea Actions is designed to be compatible with GitHub Actions, there are some differences between them.
+
+**Table of Contents**
+
+{{< toc >}}
+
+## 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](https://blog.gitea.io/2023/04/creating-go-actions/).
+
+## Unsupported workflows syntax
+
+### `concurrency`
+
+It's used to run a single job at a time.
+See [Using concurrency](https://docs.github.com/en/actions/using-jobs/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](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#run-name).
+
+It's ignored by Gitea Actions now.
+
+### `permissions` and `jobs.<job_id>.permissions`
+
+See [Workflow syntax for GitHub Actions](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions).
+
+It's ignored by Gitea Actions now.
+
+### `jobs.<job_id>.timeout-minutes`
+
+See [Workflow syntax for GitHub Actions](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes).
+
+It's ignored by Gitea Actions now.
+
+### `jobs.<job_id>.continue-on-error`
+
+See [Workflow syntax for GitHub Actions](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idcontinue-on-error).
+
+It's ignored by Gitea Actions now.
+
+### `jobs.<job_id>.environment`
+
+See [Workflow syntax for GitHub Actions](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idenvironment).
+
+It's ignored by Gitea Actions now.
+
+### Complex `runs-on`
+
+See [Workflow syntax for GitHub Actions](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on).
+
+Gitea Actions only supports `runs-on: xyz` or `runs-on: [xyz]` now.
+
+### `workflow_dispatch`
+
+See [Workflow syntax for GitHub Actions](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onworkflow_dispatch).
+
+It's ignored by Gitea Actions now.
+
+### `hashFiles` expression
+
+See [Expressions](https://docs.github.com/en/actions/learn-github-actions/expressions#hashfiles)
+
+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](https://gitea.com/actions/go-hashfiles) instead.
+
+## Missing features
+
+### Variables
+
+See [Variables](https://docs.github.com/en/actions/learn-github-actions/variables).
+
+It's under development.
+
+### 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](https://github.com/actions/toolkit/blob/main/docs/problem-matchers.md).
+
+It's ignored by Gitea Actions now.
+
+### Create an error annotation
+
+See [Creating an annotation for an error](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#example-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
+
+Gitea Actions doesn't download actions from GitHub by default.
+"By default" means that you don't specify the host in the `uses` field, like `uses: actions/checkout@v3`.
+As a contrast, `uses: https://github.com/actions/checkout@v3` has specified host.
+
+The missing host will be filled with `https://gitea.com` if you don't configure it.
+That means `uses: actions/checkout@v3` will download the action from [gitea.com/actions/checkout](https://gitea.com/actions/checkout), instead of [github.com/actions/checkout](https://github.com/actions/checkout).
+
+As mentioned, it's configurable.
+If you want your runners to download actions from GitHub or your own Gitea instance by default, you can configure it by setting `[actions].DEFAULT_ACTIONS_URL`. See [Configuration Cheat Sheet](({{ < relref "doc/administration/config-cheat-sheet.en-us.md#actions-actions" > }})).
+
+### Context availability
+
+Context availability is not checked, so you can use the env context on more places.
+See [Context availability](https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability).
+
+## Known issues
+
+### `docker/build-push-action@v4`
+
+See [act_runner#119](https://gitea.com/gitea/act_runner/issues/119#issuecomment-738294).
+
+`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:
+
+``` yml
+- name: Build and push
+ uses: docker/build-push-action@v4
+ env:
+ ACTIONS_RUNTIME_TOKEN: ''
+ with:
+...
+```
+
+The bug has been fixed in a newer [commit](https://gitea.com/docker/build-push-action/commit/d8823bfaed2a82c6f5d4799a2f8e86173c461aba?style=split&whitespace=show-all#diff-1af9a5bdf96ddff3a2f3427ed520b7005e9564ad), but it has not been released. So you could use the latest version by specifying the branch name, like:
+
+``` yml
+- name: Build and push
+ uses: docker/build-push-action@master
+ with:
+...
+```