2019-03-27 19:15:23 +08:00
|
|
|
module code.gitea.io/gitea
|
|
|
|
|
2023-02-03 11:23:52 -05:00
|
|
|
go 1.19
|
2019-03-27 19:15:23 +08:00
|
|
|
|
|
|
|
require (
|
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
|
|
|
code.gitea.io/actions-proto-go v0.2.0
|
2022-12-02 22:14:57 +08:00
|
|
|
code.gitea.io/gitea-vet v0.2.2
|
2022-01-05 05:51:12 +01:00
|
|
|
code.gitea.io/sdk/gitea v0.15.1
|
2022-09-01 22:13:17 +01:00
|
|
|
codeberg.org/gusted/mcaptcha v0.0.0-20220723083913-4f3072e1d570
|
2022-10-23 18:50:48 +08:00
|
|
|
gitea.com/go-chi/binding v0.0.0-20221013104517-b29891619681
|
2022-05-15 20:43:27 +02:00
|
|
|
gitea.com/go-chi/cache v0.2.0
|
2021-10-14 10:50:23 +08:00
|
|
|
gitea.com/go-chi/captcha v0.0.0-20211013065431-70641c1a35d5
|
2023-01-12 03:21:16 -05:00
|
|
|
gitea.com/go-chi/session v0.0.0-20221220005550-e056dc379164
|
2022-09-01 22:13:17 +01:00
|
|
|
gitea.com/lunny/dingtalk_webhook v0.0.0-20171025031554-e3534c89ef96
|
2022-07-29 12:41:13 +01:00
|
|
|
gitea.com/lunny/levelqueue v0.4.2-0.20220729054728-f020868cc2f7
|
2021-12-19 06:37:18 +01:00
|
|
|
github.com/42wim/sshsig v0.0.0-20211121163825-841cf5bbc121
|
2021-01-26 23:36:53 +08:00
|
|
|
github.com/NYTimes/gziphandler v1.1.1
|
2022-03-08 06:15:30 -05:00
|
|
|
github.com/PuerkitoBio/goquery v1.8.0
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/alecthomas/chroma/v2 v2.5.0
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/blevesearch/bleve/v2 v2.3.6
|
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
|
|
|
github.com/bufbuild/connect-go v1.3.1
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/buildkite/terminal-to-html/v3 v3.7.0
|
2022-10-01 09:49:30 -04:00
|
|
|
github.com/caddyserver/certmagic v0.17.2
|
2021-03-16 00:27:28 +02:00
|
|
|
github.com/chi-middleware/proxy v1.1.1
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/denisenkom/go-mssqldb v0.12.3
|
2023-01-14 16:57:10 +01:00
|
|
|
github.com/dimiro1/reply v0.0.0-20200315094148-d0136a4c9e21
|
2021-06-20 23:00:46 +01:00
|
|
|
github.com/djherbis/buffer v1.2.0
|
|
|
|
github.com/djherbis/nio/v3 v3.0.1
|
2023-02-01 19:30:39 +01:00
|
|
|
github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/dustin/go-humanize v1.0.1
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/editorconfig/editorconfig-core-go/v2 v2.5.1
|
2023-01-14 16:57:10 +01:00
|
|
|
github.com/emersion/go-imap v1.2.1
|
2022-05-10 12:32:42 +02:00
|
|
|
github.com/emirpasic/gods v1.18.1
|
2022-03-08 06:15:30 -05:00
|
|
|
github.com/ethantkoenig/rupture v1.0.1
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/felixge/fgprof v0.9.3
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/fsnotify/fsnotify v1.6.0
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/gliderlabs/ssh v0.3.5
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/go-ap/activitypub v0.0.0-20230218112952-bfb607b04799
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/go-ap/jsonld v0.0.0-20221030091449-f2a191312c73
|
2023-01-01 18:23:26 +08:00
|
|
|
github.com/go-chi/chi/v5 v5.0.8
|
2022-05-10 12:32:42 +02:00
|
|
|
github.com/go-chi/cors v1.2.1
|
2022-10-06 13:51:38 -07:00
|
|
|
github.com/go-enry/go-enry/v2 v2.8.3
|
User keypairs and HTTP signatures for ActivityPub federation using go-ap (#19133)
* go.mod: add go-fed/{httpsig,activity/pub,activity/streams} dependency
go get github.com/go-fed/activity/streams@master
go get github.com/go-fed/activity/pub@master
go get github.com/go-fed/httpsig@master
* activitypub: implement /api/v1/activitypub/user/{username} (#14186)
Return informations regarding a Person (as defined in ActivityStreams
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-person).
Refs: https://github.com/go-gitea/gitea/issues/14186
Signed-off-by: Loïc Dachary <loic@dachary.org>
* activitypub: add the public key to Person (#14186)
Refs: https://github.com/go-gitea/gitea/issues/14186
Signed-off-by: Loïc Dachary <loic@dachary.org>
* activitypub: go-fed conformant Clock instance
Signed-off-by: Loïc Dachary <loic@dachary.org>
* activitypub: signing http client
Signed-off-by: Loïc Dachary <loic@dachary.org>
* activitypub: implement the ReqSignature middleware
Signed-off-by: Loïc Dachary <loic@dachary.org>
* activitypub: hack_16834
Signed-off-by: Loïc Dachary <loic@dachary.org>
* Fix CI checks-backend errors with go mod tidy
Signed-off-by: Anthony Wang <ta180m@pm.me>
* Change 2021 to 2022, properly format package imports
Signed-off-by: Anthony Wang <ta180m@pm.me>
* Run make fmt and make generate-swagger
Signed-off-by: Anthony Wang <ta180m@pm.me>
* Use Gitea JSON library, add assert for pkp
Signed-off-by: Anthony Wang <ta180m@pm.me>
* Run make fmt again, fix err var redeclaration
Signed-off-by: Anthony Wang <ta180m@pm.me>
* Remove LogSQL from ActivityPub person test
Signed-off-by: Anthony Wang <ta180m@pm.me>
* Assert if json.Unmarshal succeeds
Signed-off-by: Anthony Wang <ta180m@pm.me>
* Cleanup, handle invalid usernames for ActivityPub person GET request
Signed-off-by: Anthony Wang <ta180m@pm.me>
* Rename hack_16834 to user_settings
Signed-off-by: Anthony Wang <ta180m@pm.me>
* Use the httplib module instead of http for GET requests
* Clean up whitespace with make fmt
* Use time.RFC1123 and make the http.Client proxy-aware
* Check if digest algo is supported in setting module
* Clean up some variable declarations
* Remove unneeded copy
* Use system timezone instead of setting.DefaultUILocation
* Use named constant for httpsigExpirationTime
* Make pubKey IRI #main-key instead of /#main-key
* Move /#main-key to #main-key in tests
* Implemented Webfinger endpoint.
* Add visible check.
* Add user profile as alias.
* Add actor IRI and remote interaction URL to WebFinger response
* fmt
* Fix lint errors
* Use go-ap instead of go-fed
* Run go mod tidy to fix missing modules in go.mod and go.sum
* make fmt
* Convert remaining code to go-ap
* Clean up go.sum
* Fix JSON unmarshall error
* Fix CI errors by adding @context to Person() and making sure types match
* Correctly decode JSON in api_activitypub_person_test.go
* Force CI rerun
* Fix TestActivityPubPersonInbox segfault
* Fix lint error
* Use @mariusor's suggestions for idiomatic go-ap usage
* Correctly add inbox/outbox IRIs to person
* Code cleanup
* Remove another LogSQL from ActivityPub person test
* Move httpsig algos slice to an init() function
* Add actor IRI and remote interaction URL to WebFinger response
* Update TestWebFinger to check for ActivityPub IRI in aliases
* make fmt
* Force CI rerun
* WebFinger: Add CORS header and fix Href -> Template for remote interactions
The CORS header is needed due to https://datatracker.ietf.org/doc/html/rfc7033#section-5 and fixes some Peertube <-> Gitea federation issues
* make lint-backend
* Make sure Person endpoint has Content-Type application/activity+json and includes PreferredUsername, URL, and Icon
Setting the correct Content-Type is essential for federating with Mastodon
* Use UTC instead of GMT
* Rename pkey to pubKey
* Make sure HTTP request Date in GMT
* make fmt
* dont drop err
* Make sure API responses always refer to username in original case
Copied from what I wrote on #19133 discussion: Handling username case is a very tricky issue and I've already encountered a Mastodon <-> Gitea federation bug due to Gitea considering Ta180m and ta180m to be the same user while Mastodon thinks they are two different users. I think the best way forward is for Gitea to only use the original case version of the username for federation so other AP software don't get confused.
* Move httpsig algs constant slice to modules/setting/federation.go
* Add new federation settings to app.example.ini and config-cheat-sheet
* Return if marshalling error
* Make sure Person IRIs are generated correctly
This commit ensures that if the setting.AppURL is something like "http://127.0.0.1:42567" (like in the integration tests), a trailing slash will be added after that URL.
* If httpsig verification fails, fix Host header and try again
This fixes a very rare bug when Gitea and another AP server (confirmed to happen with Mastodon) are running on the same machine, Gitea fails to verify incoming HTTP signatures. This is because the other AP server creates the sig with the public Gitea domain as the Host. However, when Gitea receives the request, the Host header is instead localhost, so the signature verification fails. Manually changing the host header to the correct value and trying the veification again fixes the bug.
* Revert "If httpsig verification fails, fix Host header and try again"
This reverts commit f53e46c721a037c55facb9200106a6b491bf834c.
The bug was actually caused by nginx messing up the Host header when reverse-proxying since I didn't have the line `proxy_set_header Host $host;` in my nginx config for Gitea.
* Go back to using ap.IRI to generate inbox and outbox IRIs
* use const for key values
* Update routers/web/webfinger.go
* Use ctx.JSON in Person response to make code cleaner
* Revert "Use ctx.JSON in Person response to make code cleaner"
This doesn't work because the ctx.JSON() function already sends the response out and it's too late to edit the headers.
This reverts commit 95aad988975be3393c76094864ed6ba962157e0c.
* Use activitypub.ActivityStreamsContentType for Person response Content Type
* Limit maximum ActivityPub request and response sizes to a configurable setting
* Move setting key constants to models/user/setting_keys.go
* Fix failing ActivityPubPerson integration test by checking the correct field for username
* Add a warning about changing settings that can break federation
* Add better comments
* Don't multiply Federation.MaxSize by 1<<20 twice
* Add more better comments
* Fix failing ActivityPubMissingPerson test
We now use ctx.ContextUser so the message printed out when a user does not exist is slightly different
* make generate-swagger
For some reason I didn't realize that /templates/swagger/v1_json.tmpl was machine-generated by make generate-swagger... I've been editing it by hand for three months! 🤦
* Move getting the RFC 2616 time to a separate function
* More code cleanup
* Update go-ap to fix empty liked collection and removed unneeded HTTP headers
* go mod tidy
* Add ed25519 to httpsig algorithms
* Use go-ap/jsonld to add @context and marshal JSON
* Change Gitea user agent from the default to Gitea/Version
* Use ctx.ServerError and remove all remote interaction code from webfinger.go
2022-06-19 00:25:12 -05:00
|
|
|
github.com/go-fed/httpsig v1.1.1-0.20201223112313-55836744818e
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/go-git/go-billy/v5 v5.4.1
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/go-git/go-git/v5 v5.5.2
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/go-ldap/ldap/v3 v3.4.4
|
2022-03-30 12:12:02 -07:00
|
|
|
github.com/go-redis/redis/v8 v8.11.5
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/go-sql-driver/mysql v1.7.0
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/go-swagger/go-swagger v0.30.4
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/go-testfixtures/testfixtures/v3 v3.8.1
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/go-webauthn/webauthn v0.8.1
|
2019-09-09 08:48:21 +03:00
|
|
|
github.com/gobwas/glob v0.2.3
|
2022-03-08 06:15:30 -05:00
|
|
|
github.com/gogs/chardet v0.0.0-20211120154057-b7413eaefb8f
|
2019-07-16 08:13:03 +08:00
|
|
|
github.com/gogs/cron v0.0.0-20171120032916-9f6c956d3e14
|
2021-02-01 05:49:25 +01:00
|
|
|
github.com/gogs/go-gogs-client v0.0.0-20210131175652-1d7215cd8d85
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/golang-jwt/jwt/v4 v4.5.0
|
2023-04-08 07:27:30 -04:00
|
|
|
github.com/google/go-github/v51 v51.0.0
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/google/pprof v0.0.0-20230222194610-99052d3372e7
|
2022-01-22 18:01:40 +01:00
|
|
|
github.com/google/uuid v1.3.0
|
2021-10-16 16:21:16 +02:00
|
|
|
github.com/gorilla/feeds v1.1.1
|
2021-11-03 00:33:54 +00:00
|
|
|
github.com/gorilla/sessions v1.2.1
|
2022-10-01 09:49:30 -04:00
|
|
|
github.com/hashicorp/go-version v1.6.0
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/hashicorp/golang-lru v0.6.0
|
|
|
|
github.com/huandu/xstrings v1.4.0
|
2022-03-08 06:15:30 -05:00
|
|
|
github.com/jaytaylor/html2text v0.0.0-20211105163654-bc68cce691ba
|
2023-01-14 16:57:10 +01:00
|
|
|
github.com/jhillyerd/enmime v0.10.1
|
2022-02-06 21:38:14 +01:00
|
|
|
github.com/json-iterator/go v1.1.12
|
2020-11-06 19:41:42 +01:00
|
|
|
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
|
2020-02-11 19:58:23 +01:00
|
|
|
github.com/keybase/go-crypto v0.0.0-20200123153347-de78d2cb44f4
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/klauspost/compress v1.15.15
|
|
|
|
github.com/klauspost/cpuid/v2 v2.2.4
|
2022-10-01 09:49:30 -04:00
|
|
|
github.com/lib/pq v1.10.7
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/markbates/goth v1.76.0
|
|
|
|
github.com/mattn/go-isatty v0.0.17
|
|
|
|
github.com/mattn/go-sqlite3 v1.14.16
|
2023-03-28 22:23:23 -04:00
|
|
|
github.com/meilisearch/meilisearch-go v0.23.0
|
2022-03-08 06:15:30 -05:00
|
|
|
github.com/mholt/archiver/v3 v3.5.1
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/microcosm-cc/bluemonday v1.0.22
|
|
|
|
github.com/minio/minio-go/v7 v7.0.49
|
2023-02-22 19:21:46 +00:00
|
|
|
github.com/minio/sha256-simd v1.0.0
|
2022-10-01 09:49:30 -04:00
|
|
|
github.com/msteinert/pam v1.1.0
|
2023-03-16 18:09:11 +08:00
|
|
|
github.com/nektos/act v0.2.43
|
2020-09-06 21:53:33 +02:00
|
|
|
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/niklasfasching/go-org v1.6.5
|
2019-05-25 13:46:14 +02:00
|
|
|
github.com/oliamb/cutter v0.2.2
|
2022-05-10 12:32:42 +02:00
|
|
|
github.com/olivere/elastic/v7 v7.0.32
|
2023-02-06 11:07:09 +01:00
|
|
|
github.com/opencontainers/go-digest v1.0.0
|
|
|
|
github.com/opencontainers/image-spec v1.1.0-rc2
|
2020-04-04 03:29:12 +08:00
|
|
|
github.com/pkg/errors v0.9.1
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/pquerna/otp v1.4.0
|
|
|
|
github.com/prometheus/client_golang v1.14.0
|
2022-03-08 06:15:30 -05:00
|
|
|
github.com/quasoft/websspi v1.1.2
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/santhosh-tekuri/jsonschema/v5 v5.2.0
|
|
|
|
github.com/sergi/go-diff v1.3.1
|
2020-10-16 07:06:27 +02:00
|
|
|
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546
|
2023-01-11 21:51:00 -05:00
|
|
|
github.com/stretchr/testify v1.8.1
|
2020-09-27 22:09:46 +01:00
|
|
|
github.com/syndtr/goleveldb v1.0.0
|
2019-03-27 19:15:23 +08:00
|
|
|
github.com/tstranex/u2f v1.0.0
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/urfave/cli v1.22.12
|
|
|
|
github.com/xanzy/go-gitlab v0.80.2
|
2022-12-17 07:22:34 +01:00
|
|
|
github.com/xeipuuv/gojsonschema v1.2.0
|
2020-05-10 10:53:04 +02:00
|
|
|
github.com/yohcop/openid-go v1.0.0
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/yuin/goldmark v1.5.4
|
2022-09-26 07:50:03 +02:00
|
|
|
github.com/yuin/goldmark-highlighting/v2 v2.0.0-20220924101305-151362477c87
|
2022-03-08 06:15:30 -05:00
|
|
|
github.com/yuin/goldmark-meta v1.1.0
|
2023-04-08 07:27:30 -04:00
|
|
|
golang.org/x/crypto v0.7.0
|
|
|
|
golang.org/x/net v0.8.0
|
|
|
|
golang.org/x/oauth2 v0.6.0
|
2023-03-16 18:09:11 +08:00
|
|
|
golang.org/x/sys v0.6.0
|
2023-04-08 07:27:30 -04:00
|
|
|
golang.org/x/text v0.8.0
|
2023-02-24 20:18:49 +00:00
|
|
|
golang.org/x/tools v0.6.0
|
|
|
|
google.golang.org/grpc v1.53.0
|
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
|
|
|
google.golang.org/protobuf v1.28.1
|
2019-03-27 19:15:23 +08:00
|
|
|
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
|
2022-09-01 22:13:17 +01:00
|
|
|
gopkg.in/ini.v1 v1.67.0
|
2022-09-13 17:33:37 +01:00
|
|
|
gopkg.in/yaml.v3 v3.0.1
|
2022-03-08 06:15:30 -05:00
|
|
|
mvdan.cc/xurls/v2 v2.4.0
|
2019-10-08 16:48:57 -03:00
|
|
|
strk.kbt.io/projects/go/libravatar v0.0.0-20191008002943-06d1c002b251
|
2022-12-11 00:53:32 +01:00
|
|
|
xorm.io/builder v0.3.12
|
2023-02-23 15:11:56 +01:00
|
|
|
xorm.io/xorm v1.3.3-0.20230219231735-056cecc97e9e
|
2019-03-27 19:15:23 +08:00
|
|
|
)
|
2020-09-06 02:44:34 +02:00
|
|
|
|
2022-03-16 00:08:31 -04:00
|
|
|
require (
|
2023-02-24 20:18:49 +00:00
|
|
|
cloud.google.com/go/compute v1.18.0 // indirect
|
|
|
|
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
git.sr.ht/~mariusor/go-xsd-duration v0.0.0-20220703122237-02e73435a078 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/Masterminds/goutils v1.1.1 // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/Masterminds/semver/v3 v3.2.0 // indirect
|
|
|
|
github.com/Masterminds/sprig/v3 v3.2.3 // indirect
|
2022-10-01 09:49:30 -04:00
|
|
|
github.com/Microsoft/go-winio v0.6.0 // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8 // indirect
|
2023-02-24 23:45:28 +08:00
|
|
|
github.com/RoaringBitmap/roaring v1.2.3 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/acomagu/bufpipe v1.0.3 // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/andybalholm/brotli v1.0.5 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/andybalholm/cascadia v1.3.1 // indirect
|
|
|
|
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
|
|
|
|
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect
|
|
|
|
github.com/aymerick/douceur v0.2.0 // indirect
|
|
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
2023-02-24 23:45:28 +08:00
|
|
|
github.com/bits-and-blooms/bitset v1.5.0 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/blevesearch/bleve_index_api v1.0.5 // indirect
|
2023-02-24 23:45:28 +08:00
|
|
|
github.com/blevesearch/geo v0.1.17 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/blevesearch/go-porterstemmer v1.0.3 // indirect
|
2022-05-10 12:32:42 +02:00
|
|
|
github.com/blevesearch/gtreap v0.1.1 // indirect
|
2022-10-01 09:49:30 -04:00
|
|
|
github.com/blevesearch/mmap-go v1.0.4 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/blevesearch/scorch_segment_api/v2 v2.1.4 // indirect
|
|
|
|
github.com/blevesearch/segment v0.9.1 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/blevesearch/snowballstem v0.9.0 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/blevesearch/upsidedown_store_api v1.0.2 // indirect
|
2022-12-22 01:08:26 +00:00
|
|
|
github.com/blevesearch/vellum v1.0.9 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/blevesearch/zapx/v11 v11.3.7 // indirect
|
|
|
|
github.com/blevesearch/zapx/v12 v12.3.7 // indirect
|
|
|
|
github.com/blevesearch/zapx/v13 v13.3.7 // indirect
|
|
|
|
github.com/blevesearch/zapx/v14 v14.3.7 // indirect
|
2023-02-24 23:45:28 +08:00
|
|
|
github.com/blevesearch/zapx/v15 v15.3.9 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/boombuler/barcode v1.0.1 // indirect
|
|
|
|
github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b // indirect
|
2023-01-14 16:57:10 +01:00
|
|
|
github.com/cention-sany/utf7 v0.0.0-20170124080048-26cad61bd60a // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
|
|
|
github.com/cloudflare/circl v1.3.2 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/couchbase/go-couchbase v0.0.0-20210224140812-5740cd35f448 // indirect
|
|
|
|
github.com/couchbase/gomemcached v0.1.2 // indirect
|
|
|
|
github.com/couchbase/goutils v0.0.0-20210118111533-e33d3ffb5401 // indirect
|
2022-05-10 12:32:42 +02:00
|
|
|
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
|
|
|
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/dlclark/regexp2 v1.8.1 // indirect
|
2023-01-14 16:57:10 +01:00
|
|
|
github.com/emersion/go-sasl v0.0.0-20200509203442-7bfe0ed36a21 // indirect
|
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
|
|
|
github.com/fatih/color v1.13.0 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/felixge/httpsnoop v1.0.3 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/fxamacker/cbor/v2 v2.4.0 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/go-ap/errors v0.0.0-20221205040414-01c1adfc98ea // indirect
|
2022-05-10 12:32:42 +02:00
|
|
|
github.com/go-asn1-ber/asn1-ber v1.5.4 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/go-enry/go-oniguruma v1.2.1 // indirect
|
|
|
|
github.com/go-git/gcfg v1.5.0 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/go-openapi/analysis v0.21.4 // indirect
|
|
|
|
github.com/go-openapi/errors v0.20.3 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/go-openapi/inflect v0.19.0 // indirect
|
|
|
|
github.com/go-openapi/jsonpointer v0.19.5 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/go-openapi/jsonreference v0.20.0 // indirect
|
|
|
|
github.com/go-openapi/loads v0.21.2 // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/go-openapi/runtime v0.25.0 // indirect
|
|
|
|
github.com/go-openapi/spec v0.20.8 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/go-openapi/strfmt v0.21.3 // indirect
|
|
|
|
github.com/go-openapi/swag v0.22.3 // indirect
|
|
|
|
github.com/go-openapi/validate v0.22.0 // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/go-webauthn/revoke v0.1.9 // indirect
|
2022-12-11 00:53:32 +01:00
|
|
|
github.com/goccy/go-json v0.10.0 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/golang-sql/sqlexp v0.1.0 // indirect
|
2022-10-01 09:49:30 -04:00
|
|
|
github.com/golang/geo v0.0.0-20210211234256-740aa86cb551 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/golang/protobuf v1.5.2 // indirect
|
|
|
|
github.com/golang/snappy v0.0.4 // indirect
|
|
|
|
github.com/google/go-querystring v1.1.0 // indirect
|
2023-01-11 21:51:00 -05:00
|
|
|
github.com/google/go-tpm v0.3.3 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/gorilla/css v1.0.0 // indirect
|
|
|
|
github.com/gorilla/handlers v1.5.1 // indirect
|
|
|
|
github.com/gorilla/mux v1.8.0 // indirect
|
|
|
|
github.com/gorilla/securecookie v1.1.1 // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/hashicorp/errwrap v1.1.0 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/hashicorp/go-multierror v1.1.1 // indirect
|
|
|
|
github.com/hashicorp/go-retryablehttp v0.7.2 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/hashicorp/hcl v1.0.0 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/imdario/mergo v0.3.13 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
|
|
|
|
github.com/jessevdk/go-flags v1.5.0 // indirect
|
|
|
|
github.com/josharian/intern v1.0.0 // indirect
|
2022-03-31 15:05:57 -07:00
|
|
|
github.com/kevinburke/ssh_config v1.2.0 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/klauspost/pgzip v1.2.5 // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/kr/pretty v0.3.1 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/kr/text v0.2.0 // indirect
|
|
|
|
github.com/libdns/libdns v0.2.1 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/magiconair/properties v1.8.6 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/mailru/easyjson v0.7.7 // indirect
|
|
|
|
github.com/markbates/going v1.0.0 // indirect
|
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
|
|
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
2022-10-01 09:49:30 -04:00
|
|
|
github.com/mattn/go-runewidth v0.0.14 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
|
2023-03-28 22:23:23 -04:00
|
|
|
github.com/mholt/acmez v1.0.4 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/miekg/dns v1.1.50 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/minio/md5-simd v1.1.2 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/mitchellh/copystructure v1.2.0 // indirect
|
|
|
|
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
|
|
|
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
|
|
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
|
|
|
github.com/mrjones/oauth v0.0.0-20190623134757-126b35219450 // indirect
|
|
|
|
github.com/mschoch/smat v0.2.0 // indirect
|
|
|
|
github.com/nwaples/rardecode v1.1.3 // indirect
|
|
|
|
github.com/oklog/ulid v1.3.1 // indirect
|
|
|
|
github.com/olekukonko/tablewriter v0.0.5 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/pelletier/go-toml v1.9.5 // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/pelletier/go-toml/v2 v2.0.5 // indirect
|
2022-10-01 09:49:30 -04:00
|
|
|
github.com/pierrec/lz4/v4 v4.1.17 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/pjbgf/sha1cd v0.2.3 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/prometheus/client_model v0.3.0 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/prometheus/common v0.37.0 // indirect
|
|
|
|
github.com/prometheus/procfs v0.8.0 // indirect
|
2023-03-16 18:09:11 +08:00
|
|
|
github.com/rhysd/actionlint v1.6.23 // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/rivo/uniseg v0.4.4 // indirect
|
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
|
|
|
github.com/robfig/cron v1.2.0 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/rogpeppe/go-internal v1.9.0 // indirect
|
2022-05-10 12:32:42 +02:00
|
|
|
github.com/rs/xid v1.4.0 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/shopspring/decimal v1.2.0 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/sirupsen/logrus v1.9.0 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/skeema/knownhosts v1.1.0 // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/spf13/afero v1.9.2 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
github.com/spf13/cast v1.5.0 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
|
|
|
github.com/spf13/pflag v1.0.5 // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/spf13/viper v1.14.0 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
github.com/subosito/gotenv v1.4.1 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/toqueteos/webbrowser v1.2.0 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/ulikunitz/xz v0.5.11 // indirect
|
2022-04-02 00:34:57 +08:00
|
|
|
github.com/unknwon/com v1.0.1 // indirect
|
2023-03-28 22:23:23 -04:00
|
|
|
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
|
|
|
github.com/valyala/fasthttp v1.44.0 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/valyala/fastjson v1.6.4 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/x448/float16 v0.8.4 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
|
|
|
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
|
2022-12-17 07:22:34 +01:00
|
|
|
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect
|
2023-02-24 23:45:28 +08:00
|
|
|
go.etcd.io/bbolt v1.3.7 // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
go.mongodb.org/mongo-driver v1.11.1 // indirect
|
2022-09-01 22:13:17 +01:00
|
|
|
go.uber.org/atomic v1.10.0 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
go.uber.org/multierr v1.9.0 // indirect
|
|
|
|
go.uber.org/zap v1.24.0 // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
golang.org/x/mod v0.8.0 // indirect
|
|
|
|
golang.org/x/sync v0.1.0 // indirect
|
2023-01-12 03:21:16 -05:00
|
|
|
golang.org/x/time v0.3.0 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
google.golang.org/appengine v1.6.7 // indirect
|
2023-02-24 20:18:49 +00:00
|
|
|
google.golang.org/genproto v0.0.0-20230223222841-637eb2293923 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
|
|
|
|
gopkg.in/warnings.v0 v0.1.2 // indirect
|
2022-11-21 16:36:59 +08:00
|
|
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
2022-03-16 00:08:31 -04:00
|
|
|
)
|
|
|
|
|
2021-04-23 02:08:53 +02:00
|
|
|
replace github.com/hashicorp/go-version => github.com/6543/go-version v1.3.1
|
2021-08-03 19:32:01 +01:00
|
|
|
|
2022-01-07 10:33:17 +08:00
|
|
|
replace github.com/shurcooL/vfsgen => github.com/lunny/vfsgen v0.0.0-20220105142115-2c99e1ffdfa0
|
2022-01-14 23:03:31 +08:00
|
|
|
|
2022-12-22 01:08:26 +00:00
|
|
|
replace github.com/blevesearch/zapx/v15 v15.3.6 => github.com/zeripath/zapx/v15 v15.3.6-alignment-fix
|
|
|
|
|
2023-04-07 20:12:10 +08:00
|
|
|
replace github.com/nektos/act => gitea.com/gitea/act v0.243.3-0.20230407083103-5c4a96bcb797
|
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
|
|
|
|
2022-01-18 11:04:24 +00:00
|
|
|
exclude github.com/gofrs/uuid v3.2.0+incompatible
|
|
|
|
|
|
|
|
exclude github.com/gofrs/uuid v4.0.0+incompatible
|
|
|
|
|
|
|
|
exclude github.com/goccy/go-json v0.4.11
|
2023-01-09 14:00:10 +08:00
|
|
|
|
|
|
|
exclude github.com/satori/go.uuid v1.2.0
|