Vitaliy Filippov 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f0b773e0ce 
							
						 
					 
					
						
						
							
							Support downloading raw task logs ( #24451 )  
						
						... 
						
						
						
						Hi!
This pull request adds support for downloading raw task logs for Gitea
Actions, similar to Github Actions
It looks like the following:
 
						
						
					 
					
						2023-06-29 10:58:56 +08:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
						
						
						
							
						
						
							6daf21c9b7 
							
						 
					 
					
						
						
							
							Fix content holes in Actions task logs file ( #25560 )  
						
						... 
						
						
						
						Fix  #25451 .
Bugfixes:
- When stopping the zombie or endless tasks, set `LogInStorage` to true
after transferring the file to storage. It was missing, it could write
to a nonexistent file in DBFS because `LogInStorage` was false.
- Always update `ActionTask.Updated` when there's a new state reported
by the runner, even if there's no change. This is to avoid the task
being judged as a zombie task.
Enhancement:
- Support `Stat()` for DBFS file.
- `WriteLogs` refuses to write if it could result in content holes.
---------
Co-authored-by: Giteabot <teabot@gitea.io> 
					
						2023-06-28 19:07:29 +02:00 
						 
				 
			
				
					
						
							
							
								Zettat123 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							48e5a74f21 
							
						 
					 
					
						
						
							
							Support pull_request_target event ( #25229 )  
						
						... 
						
						
						
						Fix  #25088 
This PR adds the support for
[`pull_request_target`](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target )
workflow trigger. `pull_request_target` is similar to `pull_request`,
but the workflow triggered by the `pull_request_target` event runs in
the context of the base branch of the pull request rather than the head
branch. Since the workflow from the base is considered trusted, it can
access the secrets and doesn't need approvals to run. 
					
						2023-06-26 14:33:18 +08:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
						
						
						
							
						
						
							f9cfd6ce5b 
							
						 
					 
					
						
						
							
							Use the type RefName for all the needed places and fix pull mirror sync bugs ( #24634 )  
						
						... 
						
						
						
						This PR replaces all string refName as a type `git.RefName` to make the
code more maintainable.
Fix  #15367 
Replaces #23070  
It also fixed a bug that tags are not sync because `git remote --prune
origin` will not remove local tags if remote removed.
We in fact should use `git fetch --prune --tags origin` but not `git
remote update origin` to do the sync.
Some answer from ChatGPT as ref.
> If the git fetch --prune --tags command is not working as expected,
there could be a few reasons why. Here are a few things to check:
> 
>Make sure that you have the latest version of Git installed on your
system. You can check the version by running git --version in your
terminal. If you have an outdated version, try updating Git and see if
that resolves the issue.
> 
>Check that your Git repository is properly configured to track the
remote repository's tags. You can check this by running git config
--get-all remote.origin.fetch and verifying that it includes
+refs/tags/*:refs/tags/*. If it does not, you can add it by running git
config --add remote.origin.fetch "+refs/tags/*:refs/tags/*".
> 
>Verify that the tags you are trying to prune actually exist on the
remote repository. You can do this by running git ls-remote --tags
origin to list all the tags on the remote repository.
> 
>Check if any local tags have been created that match the names of tags
on the remote repository. If so, these local tags may be preventing the
git fetch --prune --tags command from working properly. You can delete
local tags using the git tag -d command.
---------
Co-authored-by: delvh <dev.lh@web.de> 
						
						
					 
					
						2023-05-26 01:04:48 +00:00 
						 
				 
			
				
					
						
							
							
								a1012112796 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							6bff6e3a1f 
							
						 
					 
					
						
						
							
							show workflow config error on file view also ( #24267 )  
						
						... 
						
						
						
						As title, follow #24124 

---------
Signed-off-by: a1012112796 <1012112796@qq.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> 
						
						
					 
					
						2023-04-22 22:16:54 -04:00 
						 
				 
			
				
					
						
							
							
								Zettat123 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							5eb4c63867 
							
						 
					 
					
						
						
							
							Support triggering workflows by wiki related events ( #24119 )  
						
						... 
						
						
						
						This PR is to support triggering workflows by wiki related events like
creating, editing or deleting wiki pages. In GitHub, this event is
called
[gollum](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#gollum ) 
						
						
					 
					
						2023-04-17 13:49:47 -04:00 
						 
				 
			
				
					
						
							
							
								Zettat123 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2d91afaa92 
							
						 
					 
					
						
						
							
							Fix mismatch between hook events and github event types ( #24048 )  
						
						... 
						
						
						
						Some workflow trigger events can have multiple activity types, such as
`issues` and `pull_request`, and user can specify which types can
trigger the workflow. See GitHub documentation:
https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows 
Now some hook events cannot match the workflow trigger events correctly
because we don't check the activity types. For example,
`pull_request_label` is an individual hook event. But there isn't a
`pull_request_label` workflow trigger event, we can only use
`pull_request` event's `label` activity type. If we don't check the
activity types, the workflows without the `label` activity type may be
triggered by the `pull_request_label` event by mistake. We need to
improve the match logic.
- [x] [`issues`
](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#issues )
- [x]
[`issue_comment`](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#issue_comment )
- [x]
[`pull_request`](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request )
- [x]
[`pull_request_review`](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_review )
- [x]
[`pull_request_review_comment`](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_review_comment )
- [x]
[`release`](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#release )
- [x]
[`registry_package`](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#registry_package ) 
						
						
					 
					
						2023-04-12 12:16:47 -04:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
						
						
						
							
						
						
							ecf34fcd89 
							
						 
					 
					
						
						
							
							Do not crash when parsing an invalid workflow file  ( #23972 )  
						
						... 
						
						
						
						Fix  #23658 .
Related to https://gitea.com/gitea/act/pulls/39  
					
						2023-04-07 20:12:10 +08:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
						
						
						
							
						
						
							964a057a76 
							
						 
					 
					
						
						
							
							Fix checks for needs in Actions ( #23789 )  
						
						... 
						
						
						
						Fix:
- https://gitea.com/gitea/act_runner/issues/77 
- https://gitea.com/gitea/act_runner/issues/81 
Before:
<img width="1489" alt="image"
src="https://user-images.githubusercontent.com/9418365/228501567-f752cf87-a7ed-42c6-8f3d-ba741795c1fe.png ">
Highlights:
- Upgrade act to make things doable, related to
  - https://gitea.com/gitea/act/pulls/32 
  - https://gitea.com/gitea/act/pulls/33 
  - https://gitea.com/gitea/act/pulls/35 
- Make `needs` works
- Sort jobs in the original order in the workflow files 
						
						
					 
					
						2023-03-30 22:33:17 +08:00 
						 
				 
			
				
					
						
							
							
								ChristopherHX 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							6840258c95 
							
						 
					 
					
						
						
							
							Use GitHub Actions compatible globbing for branches, tag, path filter ( #22804 )  
						
						... 
						
						
						
						Replaces the current globbing library with a
https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet 
compatible one.
This adds support for
- `paths-ignore`, `tags-ignore` and `branches-ignore` filters.
- negative patterns in `paths`, `tags` and `branches` filters
- using both `tags` and `paths` filter on the push event
Original PR https://gitea.com/gitea/act/pulls/13 .
nektos/act PR https://github.com/nektos/act/pull/1618  for the
workflowpattern package (It can take some months for it to appear in
https://gitea.com/gitea/act )
Related to https://github.com/go-gitea/gitea/issues/13539  
						
						
					 
					
						2023-03-27 16:27:40 +08:00 
						 
				 
			
				
					
						
							
							
								Zettat123 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							e7f0bcf884 
							
						 
					 
					
						
						
							
							Improve workflow event triggers ( #23613 )  
						
						... 
						
						
						
						Follow #23037  
Fix [#22598 
comment](https://github.com/go-gitea/gitea/issues/22958#issuecomment-1475763042 )
Workflows with `pull_request` trigger event can't be triggered by
`pull_request_sync` event. This PR adds the `canGithubEventMatch`
function to check if a Github event can match any Gitea event. If the
Github event matches a Gitea event, the related workflows should be
triggered.
---------
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> 
						
						
					 
					
						2023-03-23 12:04:15 +08:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
						
						
						
							
						
						
							8e40634797 
							
						 
					 
					
						
						
							
							Convert GitHub event on actions and fix some pull_request events. ( #23037 )  
						
						... 
						
						
						
						Follow #22680 
Partially Fix  #22958 , on pull_request, `opened`, `reopened`,
`synchronize` supported, `edited` hasn't been supported yet because
Gitea doesn't trigger that events.
---------
Co-authored-by: yp05327 <576951401@qq.com> 
						
						
					 
					
						2023-03-14 20:50:51 +08:00 
						 
				 
			
				
					
						
							
							
								yp05327 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							aac07d010f 
							
						 
					 
					
						
						
							
							Add workflow error notification in ui ( #23404 )  
						
						... 
						
						
						
						

---------
Co-authored-by: techknowlogick <matti@mdranta.net>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> 
						
						
					 
					
						2023-03-14 15:27:03 +08:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
						
						
						
							
						
						
							368d43643f 
							
						 
					 
					
						
						
							
							Fix actions workflow branches match bug ( #22724 )  
						
						... 
						
						
						
						caused by #22680  
`pushPayload.Ref` and `prPayload.PullRequest.Base.Ref` have the format
like `refs/heads/<branch_name>`, so we need to trim the prefix before
comparing. 
						
						
					 
					
						2023-02-02 20:40:08 +08:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
						
						
						
							
						
						
							2871ea0809 
							
						 
					 
					
						
						
							
							Add more events details supports for actions ( #22680 )  
						
						... 
						
						
						
						#21937  implemented only basic events based on name because of `act`'s
limitation. So I sent a PR to parse all possible events details in
https://gitea.com/gitea/act/pulls/11  and it merged. The ref
documentation is
https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows 
This PR depends on that and make more detail responses for `push` events
and `pull_request` events. And it lefts more events there for future
PRs.
---------
Co-authored-by: Jason Song <i@wolfogre.com> 
					
						2023-02-01 13:32:46 +08:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
						
						
						
							
						
						
							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