0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2024-12-25 17:04:12 -05:00
forgejo/docs/content/doc/features/comparison.zh-tw.md
Jason Song 4011821c94
Implement actions (#21937)
Close #13539.

Co-authored by: @lunny @appleboy @fuxiaohei and others.

Related projects:
- https://gitea.com/gitea/actions-proto-def
- https://gitea.com/gitea/actions-proto-go
- https://gitea.com/gitea/act
- https://gitea.com/gitea/act_runner

### Summary

The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:

- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.

**Please comment on #13539 if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.

### ⚠️ Breaking

`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.

### Some important reviews

- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
  - https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954
- Why the api for runners is not under the normal `/api/v1` prefix?
  - https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592
- Why DBFS?
  - https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178
- Why ignore events triggered by `gitea-actions` bot?
  - https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103
- Why there's no permission control for actions?
  - https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868

### What it looks like

<details>

#### Manage runners

<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png">

#### List runs

<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png">


#### View logs

<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png">



</details>

### How to try it

<details>

#### 1. Start Gitea

Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source).

Add additional configurations in `app.ini` to enable Actions:

```ini
[actions]
ENABLED = true
```

Start it.

If all is well, you'll see the management page of runners:

<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png">


#### 2. Start runner

Clone the [act_runner](https://gitea.com/gitea/act_runner), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md)
to start it.

If all is well, you'll see a new runner has been added:

<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png">

#### 3. Enable actions for a repo

Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.

<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png">

If all is well, you'll see a new tab "Actions":

<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png">

#### 4. Upload workflow files

Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart)
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:

```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
on: [push]
jobs:
  Explore-GitHub-Actions:
    runs-on: ubuntu-latest
    steps:
      - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
      - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
      - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
      - name: Check out repository code
        uses: actions/checkout@v3
      - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
      - run: echo "🖥️ The workflow is now ready to test your code on the runner."
      - name: List files in the repository
        run: |
          ls ${{ github.workspace }}
      - run: echo "🍏 This job's status is ${{ job.status }}."
```

If all is well, you'll see a new run in `Actions` tab:

<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png">

#### 5. Check the logs of jobs

Click a run and you'll see the logs:

<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png">

#### 6. Go on

You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions)
of GitHub Actions, then you might find a lot of bugs.

Come on, PRs are welcome.

</details>

See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/)

---------

Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com>
2023-01-31 09:45:19 +08:00

19 KiB
Raw Blame History

date title slug weight toc draft menu
2018-05-07T13:00:00+02:00 比較 Gitea 和其它自託管 Git 服務 comparison 5 false false
sidebar
parent name weight identifier
features 比較 5 comparison

比較 Gitea 和其它自託管 Git 服務

目錄

{{< toc >}}

為了幫助您判斷 Gitea 是否適合您的需求,這裡列出了它和其它自託管 Git 服務的比較。

請注意我們不會經常檢查其它產品的功能異動,所以這份清單可能過期,如果您在下方表格中找到需要更新的資料,請在 GitHub 的 Issue 回報。

表格中使用的符號:

  • ✓ - 支援

  • - 有限度的支援

  • ✘ - 不支援

一般功能

功能 Gitea Gogs GitHub EE GitLab CE GitLab EE BitBucket RhodeCode CE
免費及開放原始碼
低資源使用 (RAM/CPU)
支援多種資料庫
支援多種作業系統
簡單的升級程序
支援 Markdown
支援 Orgmode ?
支援 CSV ?
支援第三方渲染工具 ?
Git 驅動的靜態頁面
Git 驅動的整合 wiki
部署 Token
有寫入權限的儲存庫 Token
內建 Container Registry
對外部 Git 鏡像
FIDO (2FA)
內建 CI/CD
子群組: 群組中的群組

程式碼管理

功能 Gitea Gogs GitHub EE GitLab CE GitLab EE BitBucket RhodeCode CE
儲存庫主題描述
儲存庫程式碼搜尋
全域程式碼搜尋
Git LFS 2.0
群組里程碑
精細的使用者權限(程式碼, 問題, Wiki 等)
驗證提交者 ?
GPG 簽署提交
拒絕未經簽署的提交
儲存庫動態頁
分支管理
建立新分支
網頁程式碼編輯器
提交線圖
儲存庫範本

問題追蹤器

功能 Gitea Gogs GitHub EE GitLab CE GitLab EE BitBucket RhodeCode CE
問題追蹤器
問題範本
標籤
時間追蹤
指派問題給多個成員
相關問題
機密問題
對留言的反應
鎖定對話
批次處理問題
問題看板(看板方法)
從問題建立新分支
問題搜尋
全域問題搜尋
問題相依
從電子郵件建立問題
服務台

拉取/合併請求

功能 Gitea Gogs GitHub EE GitLab CE GitLab EE BitBucket RhodeCode CE
拉取/合併請求
Squash 合併
Rebase 合併
拉取/合併請求的行內留言
拉取/合併請求的核可
解決合併衝突
限制某些使用者的推送及合併
還原指定的提交或合併請求
拉取/合併請求範本
Cherry-picking 變更
下載 Patch /

第三方整合

功能 Gitea Gogs GitHub EE GitLab CE GitLab EE BitBucket RhodeCode CE
支援 Webhook
自訂 Git Hook
整合 AD / LDAP
支援多重 LDAP / AD 伺服器
同步 LDAP 使用者
SAML 2.0 service provider
支援 OpenId Connect ?
整合 OAuth 2.0 (外部驗證) ?
成為 OAuth 2.0 提供者
兩步驟驗證 (2FA)
整合 Mattermost/Slack
整合 Discord
整合 Microsoft Teams
顯示外部 CI/CD 狀態