Zettat123 and Lunny Xiao
5417d3ac67
Interpolate uses for remote reusable workflows ( #145 )
...
Related to #127
Reviewed-on: https://gitea.com/gitea/act/pulls/145
Reviewed-by: Lunny Xiao <[email protected] >
Reviewed-by: ChristopherHX <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2025-12-02 19:36:38 +00:00
Zettat123 and Lunny Xiao
f56fd693ee
Add run_attempt to context ( #126 )
...
Fix https://github.com/go-gitea/gitea/issues/33135
Co-authored-by: Lunny Xiao <[email protected] >
Reviewed-on: https://gitea.com/gitea/act/pulls/126
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2025-11-14 20:14:23 +00:00
Zettat123 and Lunny Xiao
34f68b3c18
Support cloning actions and workflows from private repos ( #123 )
...
Related to https://github.com/go-gitea/gitea/pull/32562
Resolve https://gitea.com/gitea/act_runner/issues/102
To support using actions and workflows from private repositories, we need to enable act_runner to clone private repositories.
~~But it is not easy to know if a repository is private and whether a token is required when cloning. In this PR, I added a new option `RetryToken`. By default, token is empty. When cloning a repo returns an `authentication required` error, `act_runner` will try to clone the repo again using `RetryToken` as the token.~~
In this PR, I added a new `getGitCloneToken` function. This function returns `GITEA_TOKEN` for cloning remote actions or remote reusable workflows when the cloneURL is from the same Gitea instance that the runner is registered to. Otherwise, it returns an empty string as token for cloning public repos from other instances (such as GitHub).
Thanks @ChristopherHX for https://gitea.com/gitea/act/pulls/123#issuecomment-1046171 and https://gitea.com/gitea/act/pulls/123#issuecomment-1046285 .
Reviewed-on: https://gitea.com/gitea/act/pulls/123
Reviewed-by: ChristopherHX <[email protected] >
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2025-10-14 02:37:09 +00:00
Zettat123 and Lunny Xiao
ac6e4b7517
Support inputs context when parsing jobs ( #143 )
...
Reusable workflows or manually triggered workflows may get data from [`inputs` context](https://docs.github.com/en/actions/reference/workflows-and-actions/contexts#inputs-context ).
For example:
```
name: Build
run-name: Build app on ${{ inputs.os }}
on:
workflow_dispatch:
inputs:
os:
description: Select the OS
required: true
type: choice
options:
- windows
- linux
...
```
Reviewed-on: https://gitea.com/gitea/act/pulls/143
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2025-10-03 18:05:12 +00:00
Zettat123 and Lunny Xiao
ec091ad269
Support concurrency ( #124 )
...
To support `concurrency` syntax for Gitea Actions
Gitea PR: https://github.com/go-gitea/gitea/pull/32751
Reviewed-on: https://gitea.com/gitea/act/pulls/124
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2025-02-11 02:51:48 +00:00
Zettat123 and Jason Song
1656206765
Improve the support for reusable workflows ( #122 )
...
Fix [#32439 ](https://github.com/go-gitea/gitea/issues/32439 )
- Support reusable workflows with conditional jobs
- Support nesting reusable workflows
Reviewed-on: https://gitea.com/gitea/act/pulls/122
Reviewed-by: Lunny Xiao <[email protected] >
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2024-11-23 14:14:17 +00:00
Zettat123 and Jason Song
2ab806053c
Check all job results when calling reusable workflows ( #116 )
...
Fix [#31900 ](https://github.com/go-gitea/gitea/issues/31900 )
Reviewed-on: https://gitea.com/gitea/act/pulls/116
Reviewed-by: Jason Song <[email protected] >
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2024-09-24 06:52:45 +00:00
Zettat123 and Lunny Xiao
6a090f67e5
Support some GITEA_ environment variables ( #112 )
...
Fix https://gitea.com/gitea/act_runner/issues/575
Reviewed-on: https://gitea.com/gitea/act/pulls/112
Reviewed-by: Jason Song <[email protected] >
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2024-07-29 04:17:45 +00:00
Zettat123 and Lunny Xiao
64876e3696
Interpolate job name with matrix ( #106 )
...
Fix https://github.com/go-gitea/gitea/issues/28207
Reviewed-on: https://gitea.com/gitea/act/pulls/106
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2024-04-07 03:34:53 +00:00
Zettat123 and Jason Song
9725f60394
Support reusing workflows with absolute URLs ( #104 )
...
Resolve https://gitea.com/gitea/act_runner/issues/507
Reviewed-on: https://gitea.com/gitea/act/pulls/104
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2024-03-29 06:15:28 +00:00
Zettat123 and Jason Song
655f578563
Remove the network when there is no service ( #103 )
...
Reviewed-on: https://gitea.com/gitea/act/pulls/103
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2024-03-27 10:07:29 +00:00
Zettat123 and Jason Song
0054a45d1b
Fix bugs related to services ( #100 )
...
Related to #99
- use `networkNameForGitea` function instead of `networkName` to get network name
- add the missing `Cmd` and `AutoRemove` when creating service containers
Reviewed-on: https://gitea.com/gitea/act/pulls/100
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2024-03-26 10:14:06 +00:00
Zettat123 and Jason Song
3a9e7d18de
Support cloning remote actions from insecure Gitea instances ( #92 )
...
Related to https://github.com/go-gitea/gitea/issues/28693
Reviewed-on: https://gitea.com/gitea/act/pulls/92
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2024-03-25 15:54:09 +08:00
Zettat123 and Jason Song
2069b04779
Fix missed ValidVolumes for docker steps ( #74 )
...
Fixes https://gitea.com/gitea/act_runner/issues/277
Thanks @ChristopherHX for finding the cause of the bug.
Reviewed-on: https://gitea.com/gitea/act/pulls/74
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-07-11 02:08:22 +00:00
Zettat123 and Jason Song
545802b97b
Fix the error when removing network in self-hosted mode ( #69 )
...
Fixes https://gitea.com/gitea/act_runner/issues/255
Reviewed-on: https://gitea.com/gitea/act/pulls/69
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-06-28 02:27:12 +00:00
Zettat123 and Jason Song
a165e17878
Add support for glob syntax when checking volumes ( #64 )
...
Follow #60
Reviewed-on: https://gitea.com/gitea/act/pulls/64
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-06-16 05:24:01 +00:00
Zettat123 and Jason Song
56e103b4ba
Fix the missing URL when using remote reusable workflow ( #67 )
...
Reviewed-on: https://gitea.com/gitea/act/pulls/67
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-06-16 05:12:43 +00:00
Zettat123 and Jason Song
92b4d73376
Check volumes ( #60 )
...
This PR adds a `ValidVolumes` config. Users can specify the volumes (including bind mounts) that can be mounted to containers by this config.
Options related to volumes:
- [jobs.<job_id>.container.volumes](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idcontainervolumes )
- [jobs.<job_id>.services.<service_id>.volumes](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idservicesservice_idvolumes )
In addition, volumes specified by `options` will also be checked.
Currently, the following default volumes (see https://gitea.com/gitea/act/src/commit/a72822b3f83d3e68ffc697101b713b7badf57e2f/pkg/runner/run_context.go#L116-L166 ) will be added to `ValidVolumes`:
- `act-toolcache`
- `<container-name>` and `<container-name>-env`
- `/var/run/docker.sock` (We need to add a new configuration to control whether the docker daemon can be mounted)
Co-authored-by: Jason Song <[email protected] >
Reviewed-on: https://gitea.com/gitea/act/pulls/60
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-06-05 09:21:59 +00:00
183bb7af1b
Support for multiple default URLs for getting actions ( #58 )
...
Partially resolve https://github.com/go-gitea/gitea/issues/24789 .
`act_runner` needs to be improved to parse `gitea_default_actions_url` after this PR merged (https://gitea.com/gitea/act_runner/pulls/200 )
Co-authored-by: Lunny Xiao <[email protected] >
Reviewed-on: https://gitea.com/gitea/act/pulls/58
Reviewed-by: Lunny Xiao <[email protected] >
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-06-05 09:07:17 +00:00
Zettat123 and Jason Song
27846050ae
Force privileged to false when runner's config is false ( #57 )
...
The runner's `privileged` config can be bypassed. Currently, even if the runner's `privileged` config is false, users can still enable the privileged mode by using `--privileged` in the container's option string. Therefore, if runner's config is false, the `--privileged` in options string should be ignored.
Reviewed-on: https://gitea.com/gitea/act/pulls/57
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-05-16 11:21:18 +08:00
Zettat123 and Jason Song
ed9b6643ca
Do not set the default network to host ( #55 )
...
In [nektos/act/pull/1739](https://github.com/nektos/act/pull/1739 ), the container network mode defaults to `host` if the network option isn't specified in `options`. When calling `ConnectToNetwork`, the `host` network mode may cause the error:
`Error response from daemon: container sharing network namespace with another container or host cannot be connected to any other network`
see the code: https://gitea.com/gitea/act/src/commit/a94a01bff2576fcf9fefaf879ea09c11e383cdab/pkg/container/docker_run.go#L51-L68
To avoid the error, this logic needs to be removed to keep the default network mode as `bridge`.
Reviewed-on: https://gitea.com/gitea/act/pulls/55
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-05-09 16:41:31 +08:00
a18648ee73
Support services credentials ( #51 )
...
If a service's image is from a container registry requires authentication, `act_runner` will need `credentials` to pull the image, see [documentation](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idservicesservice_idcredentials ).
Currently, `act_runner` incorrectly uses the `credentials` of `containers` to pull services' images and the `credentials` of services won't be used, see the related code: https://gitea.com/gitea/act/src/commit/0c1f2edb996a87ee17dcf3cfa7259c04be02abd7/pkg/runner/run_context.go#L228-L269
Co-authored-by: Jason Song <[email protected] >
Reviewed-on: https://gitea.com/gitea/act/pulls/51
Reviewed-by: Jason Song <[email protected] >
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-25 14:45:39 +08:00
Zettat123 and GitHub
baf3bcf48b
avoid using log.Fatal ( #1759 )
2023-04-25 02:09:54 +00:00
Zettat123 and Jason Song
0c1f2edb99
Support specifying command for services ( #50 )
...
This PR is to support overwriting the default `CMD` command of `services` containers.
This is a Gitea specific feature and GitHub Actions doesn't support this syntax.
Reviewed-on: https://gitea.com/gitea/act/pulls/50
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-23 14:55:17 +08:00
Zettat123 and Jason Song
721857e4a0
Remove empty steps when decoding Job ( #49 )
...
Follow #48
Empty steps are invalid, so remove them when decoding `Job` from YAML.
Reviewed-on: https://gitea.com/gitea/act/pulls/49
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-21 20:21:15 +08:00
Zettat123 and Jason Song
6b1010ad07
Fix potential panic caused by nil Step ( #48 )
...
```yml
jobs:
job1:
steps:
- run: echo HelloWorld
- # empty step
```
If a job contains an empty step, `Job.Steps` will have a nil element and will cause panic when calling `Step.String()`.
See [the code of gitea](https://github.com/go-gitea/gitea/blob/948a9ee5e83586354461e2a0e5cdf00e0513e89d/models/actions/task.go#L300-L301 )
Reviewed-on: https://gitea.com/gitea/act/pulls/48
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-21 14:45:38 +08:00
Zettat123 and Lunny Xiao
e12252a43a
Support intepolation for env of services ( #47 )
...
Reviewed-on: https://gitea.com/gitea/act/pulls/47
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-20 16:24:31 +08:00
Zettat123 and Lunny Xiao
8609522aa4
Support services options ( #45 )
...
Reviewed-on: https://gitea.com/gitea/act/pulls/45
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-19 21:53:57 +08:00
Zettat123 and Jason Song
6a876c4f99
Add go build tag to docker_network.go ( #44 )
...
Fix the build failure in https://gitea.com/gitea/act_runner/actions/runs/278/jobs/0
Reviewed-on: https://gitea.com/gitea/act/pulls/44
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-19 16:19:38 +08:00
d3a56cdb69
Support services ( #42 )
...
Replace #5
Co-authored-by: Lunny Xiao <[email protected] >
Co-authored-by: Jason Song <[email protected] >
Reviewed-on: https://gitea.com/gitea/act/pulls/42
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-19 11:23:28 +08:00
Zettat123 and Jason Song
ac1ba34518
Fix incorrect job result status ( #40 )
...
Fix [#24039(GitHub)](https://github.com/go-gitea/gitea/issues/24039 )
At present, if a job fails in the `Set up job`, the result status of the job will still be `success`. The reason is that the `pre` steps don't call `SetJobError`, so the `jobError` will be nil when `post` steps setting the job result. See https://gitea.com/gitea/act/src/commit/5c4a96bcb797c7d013b878f1a3ceb74f9a834c64/pkg/runner/job_executor.go#L99
Reviewed-on: https://gitea.com/gitea/act/pulls/40
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-14 15:42:03 +08:00
Zettat123 and Jason Song
62abf4fe11
Add token for getting reusable workflows from local private repos ( #38 )
...
Partially fixes https://gitea.com/gitea/act_runner/issues/91
If the repository is private, we need to provide the token to the caller workflows to access the called reusable workflows from the same repository.
Reviewed-on: https://gitea.com/gitea/act/pulls/38
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-06 14:16:20 +08:00
Zettat123 and Lunny Xiao
cfedc518ca
Add With field to jobparser.Job ( #37 )
...
Partially Fixes [gitea/act_runner#91 comment](https://gitea.com/gitea/act_runner/issues/91#issuecomment-734544 )
nektos/act has added `With` to support reusable workflows (see [code](https://github.com/nektos/act/blob/68c72b9a51f4fa586af62619f9e6361e023a5d48/pkg/model/workflow.go#L160 ))
GitHub actions also support [`jobs.<job_id>.with`](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idwith )
Reviewed-on: https://gitea.com/gitea/act/pulls/37
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-04 10:59:53 +08:00
Zettat123 and Jason Song
5e76853b55
Support reusable workflow ( #34 )
...
Fix https://gitea.com/gitea/act_runner/issues/80
Fix https://gitea.com/gitea/act_runner/issues/85
To support reusable workflows, I made some improvements:
- read `yml` files from both `.gitea/workflows` and `.github/workflows`
- clone repository for local reusable workflows because the runner doesn't have the code in its local directory
- fix the incorrect clone url like `https://https://gitea.com `
Co-authored-by: Jason Song <[email protected] >
Reviewed-on: https://gitea.com/gitea/act/pulls/34
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-03-29 13:59:22 +08:00
3daf313205
chore(yaml): Improve ParseRawOn ( #28 )
...
See [act_runner #71 comment](https://gitea.com/gitea/act_runner/issues/71#issuecomment-733806 ), we need to handle `nil interface{}` in `ParseRawOn` function
Co-authored-by: Lunny Xiao <[email protected] >
Reviewed-on: https://gitea.com/gitea/act/pulls/28
Reviewed-by: Lunny Xiao <[email protected] >
Reviewed-by: appleboy <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-03-25 12:13:50 +08:00
Zettat123 and Lunny Xiao
f6a8a0e643
Add extra path env for running go actions ( #26 )
...
At present, the runner can't run go actions even if the go environment has been set by the `setup-go` action. The reason is that `setup-go` will add the go related paths to [`GITHUB_PATH`](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-system-path ) but in #22 I forgot to apply them before running go actions. After adding the `ApplyExtraPath` function, the `setup-go` action runs properly.
Reviewed-on: https://gitea.com/gitea/act/pulls/26
Reviewed-by: Jason Song <[email protected] >
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-03-21 15:31:30 +08:00
Zettat123 and Lunny Xiao
a36b003f7a
Improve running with go ( #22 )
...
Close #21
I have tested this PR and run Go actions successfully on:
- Windows host
- Docker on Windows
- Linux host
- Docker on Linux
Before running Go actions, we need to make sure that Go has been installed on the host or the Docker image.
Reviewed-on: https://gitea.com/gitea/act/pulls/22
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-03-14 16:55:36 +08:00