Zettat123 and bircni
c9c4957e38
feat: support reading cache.external_secret from a file ( #1100 )
...
This PR adds a new `cache.external_secret_file` config, which points at a file holding the secret. So the secret can come from a mounted Kubernetes/Docker secret while the rest of the config stays plain text.
```yaml
cache:
external_server: "http://cache-host:8088/ "
external_secret_file: /path/to/cache_external_secret
```
---------
Co-authored-by: bircni <[email protected] >
Reviewed-on: https://gitea.com/gitea/runner/pulls/1100
Reviewed-by: bircni <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
2026-07-23 06:26:10 +00:00
Zettat123 and Nicolas
99bc50d538
feat: shallow clone action repositories ( #1053 )
...
## Summary
When a workflow references a remote action (e.g. `uses: actions/checkout@v4`) the runner clones that repository during job setup.
Previously this was always a full clone(every branch and the complete history) even though only a single ref is needed.
This PR makes the runner shallow-clone the requested ref by default (`--depth=1`, single branch), falling back to a full clone when a shallow clone fails.
Notes:
- Existing on-disk caches are reused as-is; there is no forced re-clone on upgrade.
## Changes
- A new `runner.action_shallow_clone` option (default `true`) lets operators opt back into full clones.
- `cloneAtDepth`: attempt a shallow clone; fall back to a full clone when shallow clone fails.
- Keep a shallow cache cheap on update: fetch the single requested ref at depth 1 and skip `pull`.
---------
Co-authored-by: bircni <[email protected] >
Reviewed-on: https://gitea.com/gitea/runner/pulls/1053
Reviewed-by: Nicolas <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2026-06-28 20:12:21 +00:00
Zettat123 and Nicolas
ef6ca957b5
fix(artifactcache): preserve cache key case to stop redundant uploads ( #947 )
...
## Summary
`artifactcache.Handler` was lowercasing cache keys before storing and returning them. This caused actions like `actions/setup-go` to treat every restore as a partial hit and re-upload the cache on every job run.
Similar issue: [act#2497](https://github.com/nektos/act/issues/2497 )
## Root Cause
These actions build cache keys that include `RUNNER_OS` (e.g. `setup-go-Linux-x64-...` See [setup-go/cache-restore.ts](https://github.com/actions/setup-go/blob/78961f6f84d799cd858575bb931c3e51d3b13290/src/cache-restore.ts#L11-L51 ) ). In `gitea/runner`, `RUNNER_OS` is always `Linux` by default (See https://gitea.com/gitea/runner/search?q=RUNNER_OS ).
These actions decide whether to save the cache data in their post step using **strict** `===` comparison between the primary key and the key returned from the runner. See [setup-go cache-save.ts](https://github.com/actions/setup-go/blob/78961f6f84d799cd858575bb931c3e51d3b13290/src/cache-save.ts#L44-L86 ) .
|State | Value|
|--- | ---|
|CachePrimaryKey | `setup-go-Linux-x64-ubuntu-22.04-go-1.24.9-abc123` |
|CacheMatchedKey | `setup-go-linux-x64-ubuntu-22.04-go-1.24.9-abc123` |
Because the runner's cache server lowercased the stored key, the response carried `setup-go-linux-...` while the action's primary key was `setup-go-Linux-...`. Strict equality failed, then the actions updated same data again. This repeated on every run, wasting disk and bandwidth. The duplicate blobs accumulate until GC .
https://gitea.com/gitea/runner/actions/runs/462560/jobs/737401#jobstep-2-15

https://gitea.com/gitea/runner/actions/runs/462560/jobs/737401#jobstep-6-22

## Fix
Drop the `strings.ToLower` calls in `find` and `reserve` so the original key case is preserved end-to-end. This fix will invalidate existing "case insensitive" keys.
## Notes
The [original act review](https://github.com/nektos/act/pull/1770/changes/BASE..d44b8d15649d9d09d1d891130b8f3962097a81f3#r1177624608 ) suggested making cache keys case-insensitive because `isExactKeyMatch` compares cache key ignoring case. However, the actions (`setup-go` / `setup-node` / `setup-ruby`) compare with strict `===` rather than `isExactKeyMatch`.
---------
Co-authored-by: Nicolas <[email protected] >
Reviewed-on: https://gitea.com/gitea/runner/pulls/947
Reviewed-by: silverwind <[email protected] >
Reviewed-by: Lunny Xiao <[email protected] >
Reviewed-by: Nicolas <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2026-05-09 12:27:52 +00:00
Zettat123 and Lunny Xiao
f09fafcb0a
Clone different git repos in parallel via per-directory locks ( #866 )
...
Old `cloneLock` is a package-level `sync.Mutex` that serialized every action clone across all goroutines, regardless of target directory.
This PR replaces it with a `sync.Map` of per-directory mutexes keyed by `input.Dir`. Same-directory operations still serialize; different directories now clone in parallel.
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/866
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2026-04-28 21:39:41 +00:00
505907eb2a
Add run_attempt to context ( #632 )
...
Blocked by https://gitea.com/gitea/act/pulls/126
Fix https://github.com/go-gitea/gitea/issues/33135
---------
Co-authored-by: Lunny Xiao <[email protected] >
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/632
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2026-03-26 20:07:22 +00:00
Zettat123 and Lunny Xiao
e6dbe2a1ca
Bump gitea/act ( #770 )
...
Related to https://gitea.com/gitea/act/pulls/145
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/770
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2025-12-02 22:38:31 +00:00
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
47caafd037
Bump gitea/act ( #753 )
...
Related to https://gitea.com/gitea/act/pulls/123
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/753
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2025-10-14 03:32:35 +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 techknowlogick
a7080f5457
Update examples for GITEA_RUNNER_REGISTRATION_TOKEN env ( #630 )
...
For https://github.com/go-gitea/gitea/pull/32946
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/630
Reviewed-by: Lunny Xiao <[email protected] >
Reviewed-by: techknowlogick <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2025-01-05 22:25:32 +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
a7eca813ea
Bump act to v0.260.2 ( #523 )
...
Related to
- https://gitea.com/gitea/act/pulls/86
- https://gitea.com/gitea/act/pulls/103
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/523
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2024-03-27 10:25:23 +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
a1fc2b3ca7
Improve the explanation of workdir_parent config ( #519 )
...
Fix #512
act_runner adds a '/' before the path (see https://gitea.com/gitea/act_runner/src/commit/5977042b86f22454d51c8027a009cb0a40337e52/internal/app/run/runner.go#L186 ) . So `workdir_parent` doesn't need to have the prefix '/'.
If `workdir_parent` has the prefix '/', errors will occur when reading files from the job container.
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/519
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2024-03-22 02:30:31 +00:00
Zettat123 and Jason Song
75006a59cc
Support cloning remote actions from insecure Gitea instances ( #508 )
...
Follow https://gitea.com/gitea/act/pulls/92
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/508
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2024-03-06 06:10:37 +00:00
Zettat123 and Jason Song
73adae040d
Upgrade act ( #291 )
...
Follow https://gitea.com/gitea/act/pulls/74
Fix #277 , #290
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/291
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-07-17 03:44:42 +00: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
3dcfd6ea3d
Run as cache server ( #275 )
...
This PR
- adds the `cache-server` command so act_runner can run as a cache server. When running as a cache server, act_runner only processes the requests related to cache and does not run jobs.
- adds the `external_server` configuration for cache. If specified, act_runner will use this URL as the ACTIONS_CACHE_URL instead of starting a cache server itself.
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/275
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-07-07 08:28:54 +00:00
Zettat123 and Jason Song
c6006ee699
Upgrade act ( #269 )
...
Follow https://gitea.com/gitea/act/pulls/71 .
Fix https://gitea.com/gitea/act_runner/issues/266
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/269
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-07-03 04:15:46 +00:00
Zettat123 and Jason Song
ccc27329dc
Improve the usage of docker_host configuration ( #260 )
...
Follow #242 , #244
Fixes #258
Users could use `docker_host` configuration to specify which docker daemon will be used by act_runner.
- If `docker_host` is **empty**, act_runner will find an available docker host automatically.
- If `docker_host` is **"-"**, act_runner will find an available docker host automatically, but the docker host won't be mounted to the job containers and service containers.
- If `docker_host` is **not empty or "-"**, the specified docker host will be used. An error will be returned if it doesn't work.
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/260
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-06-30 04:00:04 +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
8c14933e70
Upgrade act ( #248 )
...
Follow https://gitea.com/gitea/act/pulls/68
Co-authored-by: Jason Song <[email protected] >
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/248
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-06-20 08:33:42 +00:00
Zettat123 and Jason Song
ec38401097
Add ValidVolumes config ( #226 )
...
Follow https://gitea.com/gitea/act/pulls/60 , https://gitea.com/gitea/act/pulls/64
This PR adds the `valid_volumes` configuration. `valid_volumes` is a sequence containing the volumes (including bind mounts) that can be mounted to the container. By default, `valid_volumes` is empty, which means that no volumes can be mounted. Users can specify multiple valid volumes and [glob](https://github.com/gobwas/glob ) is supported.
All volumes will be allowed when using `exec` to run workflows locally.
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/226
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-16 06:07:48 +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
fed01c9807
Parse multiple default actions URLs ( #200 )
...
Follow https://gitea.com/gitea/act/pulls/58
Resolve https://github.com/go-gitea/gitea/issues/24789
Co-authored-by: Jason Song <[email protected] >
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/200
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-06-06 04:03:02 +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
Zettat123 and Jason Song
35400f76fa
Add parent directory for working directory ( #154 )
...
Fixes #145
At present, the working directory of a work flow is a path like `/<owner>/<repo>`, so the directory may conflict with system directory like `/usr/bin`. We need to add a parent directory for the working directory.
In this PR, the parent directory is `/workspace` by default and users could configure it by the `workdir_parent` option.
This change doesn't affect the host mode because in host mode the working directory will always be in `$HOME/.cache/act/` directory.
Co-authored-by: Jason Song <[email protected] >
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/154
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-28 22:03:52 +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
27a1a90d25
Upgrade act ( #135 )
...
Related to:
- https://gitea.com/gitea/act/pulls/45
- https://gitea.com/gitea/act/pulls/47
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/135
Reviewed-by: techknowlogick <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-21 10:48:26 +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
Zettat123 and Jason Song
c75b67e892
Upgrade act ( #128 )
...
Follow https://gitea.com/gitea/act/pulls/42
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/128
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-19 14:53:23 +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
bc6031eff7
Fix reporting log in Reporter.Close ( #126 )
...
Previously, the `Close` func returns incorrectly so that the logs may not be reported.
This PR fixes the incorrect return and sets the `StoppedAt` to get the correct task duration.
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/126
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-19 11:17:49 +08:00
Zettat123 and Jason Song
c69c353d93
Upgrade act ( #124 )
...
Related to https://gitea.com/gitea/act/pulls/40
Co-authored-by: Jason Song <[email protected] >
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/124
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-04-14 18:20:04 +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
Zettat123 and Jason Song
1596e4b1fd
Fix potential log panic ( #82 )
...
If a job uses a [reusable workflow](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-of-jobsjob_iduses ), the job's steps sequence will be empty.
But in log reporter, we don't check the length of `r.state.Steps`, which may cause panic.
``` go
if v, ok := entry.Data["stepNumber"]; ok {
if v, ok := v.(int); ok {
step = r.state.Steps[v]
}
}
```
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/82
Reviewed-by: Lunny Xiao <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-03-28 11:49:09 +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 Jason Song
8f81f40d62
Fix failed to create container if the runner works in root dir ( #67 )
...
Fix #56
This PR uses the `preset.Repository` as a part of the workdir and use `filepath.FromSlash` to convert the slash characters.
Co-authored-by: Jason Song <[email protected] >
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/67
Reviewed-by: Jason Song <[email protected] >
Co-authored-by: Zettat123 <[email protected] >
Co-committed-by: Zettat123 <[email protected] >
2023-03-23 09:41:22 +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