- Go 83.8%
- JavaScript 14.1%
- Shell 1.5%
- Makefile 0.4%
- Dockerfile 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [code.forgejo.org/forgejo/runner](https://forgejo.org) ([source](https://code.forgejo.org/forgejo/runner)) | minor | `11.1.2` -> `11.3.0` | | [forgejo/runner](https://code.forgejo.org/forgejo/runner) | minor | `11.1.2` -> `11.3.0` | --- ### Release Notes <details> <summary>forgejo/runner (code.forgejo.org/forgejo/runner)</summary> ### [`v11.3.0`](https://code.forgejo.org/forgejo/runner/releases/tag/v11.3.0) [Compare Source](https://code.forgejo.org/forgejo/runner/compare/v11.2.0...v11.3.0) - [User guide](https://forgejo.org/docs/next/user/actions/overview/) - [Administrator guide](https://forgejo.org/docs/next/admin/actions/) - [Container images](https://code.forgejo.org/forgejo/-/packages/container/runner/versions) Release Notes *** <!--start release-notes-assistant--> <!--URL:https://code.forgejo.org/forgejo/runner--> - features - [PR](forgejo/runner#1117): <!--number 1117 --><!--line 0 --><!--description ZmVhdDogYWxsb3cgaW5wdXRzIGluIHJ1bnMtb24=-->feat: allow inputs in runs-on<!--description--> - bug fixes - [PR](forgejo/runner#1101): <!--number 1101 --><!--line 0 --><!--description Zml4OiB3aW5kb3dzIGNvbXBpbGF0aW9u-->fix: windows compilation<!--description--> - [PR](forgejo/runner#1098): <!--number 1098 --><!--line 0 --><!--description Zml4OiBlbmZvcmNlIExYQyBib290c3RyYXAgbG9ja3M=-->fix: enforce LXC bootstrap locks<!--description--> - [PR](forgejo/runner#1104): <!--number 1104 --><!--line 0 --><!--description Zml4OiBseGNfZXhpc3RzX2FuZF9hcHRfbm90X29sZCBtdXN0IGJlIGluIGEgdHJhbnNhY3Rpb24=-->fix: lxc\_exists\_and\_apt\_not\_old must be in a transaction<!--description--> - [PR](forgejo/runner#1108): <!--number 1108 --><!--line 0 --><!--description Zml4OiAke3sgZW52LlZBUiB9fSBpcyBhbGxvd2VkIGluIGNvbnRhaW5lcg==-->fix: ${{ env.VAR }} is allowed in container<!--description--> - other - [PR](forgejo/runner#1119): <!--number 1119 --><!--line 0 --><!--description Y2hvcmU6IHJlbmFtZSBOZXdJbnRlcnBldGVyIHRvIE5ld0ludGVycHJldGVy-->chore: rename NewInterpeter to NewInterpreter<!--description--> - [PR](forgejo/runner#1115): <!--number 1115 --><!--line 0 --><!--description VXBkYXRlIG1vZHVsZSBnaXRodWIuY29tL2dvbGFuZ2NpL2dvbGFuZ2NpLWxpbnQvdjIvY21kL2dvbGFuZ2NpLWxpbnQgdG8gdjIuNi4w-->Update module github.com/golangci/golangci-lint/v2/cmd/golangci-lint to v2.6.0<!--description--> - [PR](forgejo/runner#1113): <!--number 1113 --><!--line 0 --><!--description VXBkYXRlIGNvZGUuZm9yZ2Vqby5vcmcvZm9yZ2Vqby9mb3JnZWpvIERvY2tlciB0YWcgdG8gdjExLjAuNw==-->Update code.forgejo.org/forgejo/forgejo Docker tag to v11.0.7<!--description--> - [PR](forgejo/runner#1100): <!--number 1100 --><!--line 0 --><!--description Y2hvcmUoY2kpOiB1c2UgY29kZS5mb3JnZWpvLm9yZy9vY2kvYWxwaW5lOmxhdGVzdA==-->chore(ci): use code.forgejo.org/oci/alpine:latest<!--description--> - [PR](forgejo/runner#1110): <!--number 1110 --><!--line 0 --><!--description VXBkYXRlIGRhdGEuZm9yZ2Vqby5vcmcvb2NpL2dvbGFuZyBEb2NrZXIgdGFnIHRvIHYxLjI1-->Update data.forgejo.org/oci/golang Docker tag to v1.25<!--description--> - [PR](forgejo/runner#1106): <!--number 1106 --><!--line 0 --><!--description VXBkYXRlIGRlcGVuZGVuY3kgZm9yZ2Vqby9seGMtaGVscGVycyB0byB2MS4xLjM=-->Update dependency forgejo/lxc-helpers to v1.1.3<!--description--> - [PR](forgejo/runner#1103): <!--number 1103 --><!--line 0 --><!--description UmV2ZXJ0ICJjaG9yZShjbGVhbnVwKTogbHhjLWhlbHBlcnMgZG9lcyBub3QgbmVlZCBhIGdsb2JhbCBsb2NrICgjMTA0Nyki-->Revert "chore(cleanup): lxc-helpers does not need a global lock ([#​1047](https://github.com/forgejo/runner/issues/1047))"<!--description--> <!--end release-notes-assistant--> ### [`v11.2.0`](https://code.forgejo.org/forgejo/runner/releases/tag/v11.2.0) [Compare Source](https://code.forgejo.org/forgejo/runner/compare/v11.1.2...v11.2.0) - [User guide](https://forgejo.org/docs/next/user/actions/overview/) - [Administrator guide](https://forgejo.org/docs/next/admin/actions/) - [Container images](https://code.forgejo.org/forgejo/-/packages/container/runner/versions) Release Notes *** <!--start release-notes-assistant--> <!--URL:https://code.forgejo.org/forgejo/runner--> - features - [PR](forgejo/runner#1079): <!--number 1079 --><!--line 0 --><!--description ZmVhdDogYWxsb3cgLS1tZW1vcnkgaW4gd29ya2Zsb3cgY29udGFpbmVyIG9wdGlvbnM=-->feat: allow --memory in workflow container options<!--description--> - [PR](forgejo/runner#1076): <!--number 1076 --><!--line 0 --><!--description ZmVhdDogZGlzYW1iaWd1YXRlIGNsb3VkIGVtb2pp-->feat: disambiguate cloud emoji<!--description--> - [PR](forgejo/runner#1063): <!--number 1063 --><!--line 0 --><!--description ZmVhdDogaW1wcm92ZSByZWFkYWJpbGl0eSBvZiBlcnJvciBtZXNzYWdlcyBmcm9tIFBhcnNlUmF3T24=-->feat: improve readability of error messages from ParseRawOn<!--description--> - bug fixes - [PR](forgejo/runner#1088): <!--number 1088 --><!--line 0 --><!--description Zml4OiB1c2UgYXV0b21hdGljIElQIGRldGVjdGlvbiBpbnN0ZWFkIG9mIGNhY2hlIHByb3h5IGhvc3QgY29uZmlnIHZhbHVlIGZvciBpbnRlcm5hbCBjYWNoZSBzZXJ2ZXI=-->fix: use automatic IP detection instead of cache proxy host config value for internal cache server<!--description--> - [PR](forgejo/runner#1081): <!--number 1081 --><!--line 0 --><!--description Zml4OiBwcmV2ZW50IHByZW1hdHVyZSB0b2tlbiByZXZvY2F0aW9uIGluIHJldXNhYmxlIHdvcmtmbG93cw==-->fix: prevent premature token revocation in reusable workflows<!--description--> - [PR](forgejo/runner#1083): <!--number 1083 --><!--line 0 --><!--description Zml4OiBkb24ndCBwcmVwZW5kIHNlcnZlciBVUkwgd2l0aCBodHRwczovLyBpZiBpdCdzIGFuIGVtcHR5IHN0cmluZw==-->fix: don't prepend server URL with https\:// if it's an empty string<!--description--> - [PR](forgejo/runner#1080): <!--number 1080 --><!--line 0 --><!--description Zml4OiBhbGxvdyBtYXBwaW5nIGludG8gZW52IHZhcmlhYmxlIElOUFVUX04gZnJvbSAke3sgaW5wdXRzLm4gfX0=-->fix: allow mapping into env variable INPUT\_N from ${{ inputs.n }}<!--description--> - [PR](forgejo/runner#1067): <!--number 1067 --><!--line 0 --><!--description Zml4OiBkb24ndCBwYW5pYyBvbiBjYWNoZXByb3h5IHN0YXJ0dXAgZmFpbHVyZQ==-->fix: don't panic on cacheproxy startup failure<!--description--> - [PR](forgejo/runner#1057): <!--number 1057 --><!--line 0 --><!--description Zml4OiBsb2cgZXJyb3IgZm9yIHdoeSBjYWNoZSBjb3VsZG4ndCBiZSBzdGFydGVk-->fix: log error for why cache couldn't be started<!--description--> - [PR](forgejo/runner#1054): <!--number 1054 --><!--line 0 --><!--description Zml4OiByZW1vdmUgTFhDIGJhY2tlbmQgbGVmdG92ZXJzIHdoZW4gdGhlIGpvYiBjb21wbGV0ZXM=-->fix: remove LXC backend leftovers when the job completes<!--description--> - [PR](forgejo/runner#1049): <!--number 1049 --><!--line 0 --><!--description Zml4OiBtYWtlIHRoZSBjcmVhdGlvbiBvZiBMWEMgdGVtcGxhdGVzIGF0b21pYyBzbyB0aGV5IGNhbm5vdCBiZSBpbnRlcnJ1cHRlZCB3aGlsZSBidWlsZGluZw==-->fix: make the creation of LXC templates atomic so they cannot be interrupted while building<!--description--> - other - [PR](forgejo/runner#1094): <!--number 1094 --><!--line 0 --><!--description VXBkYXRlIG1vZHVsZSBnb2xhbmcub3JnL3gvdGltZSB0byB2MC4xNC4w-->Update module golang.org/x/time to v0.14.0<!--description--> - [PR](forgejo/runner#1092): <!--number 1092 --><!--line 0 --><!--description VXBkYXRlIG1vZHVsZSBnaXRodWIuY29tL2F2YXN0L3JldHJ5LWdvL3Y0IHRvIHY0LjcuMA==-->Update module github.com/avast/retry-go/v4 to v4.7.0<!--description--> - [PR](forgejo/runner#1089): <!--number 1089 --><!--line 0 --><!--description Y2hvcmU6IGxvZyByZWFzb24gcmV2ZXJzZSBwcm94eSBjYW4ndCBiZSBzdGFydGVk-->chore: log reason reverse proxy can't be started<!--description--> - [PR](forgejo/runner#1065): <!--number 1065 --><!--line 0 --><!--description Y2hvcmU6IGFkZCBhZGRpdGlvbmFsIGxvZ2dpbmcgdG8gY2FjaGVwcm94eQ==-->chore: add additional logging to cacheproxy<!--description--> - [PR](forgejo/runner#1087): <!--number 1087 --><!--line 0 --><!--description VXBkYXRlIGRlcGVuZGVuY3kgZ28gdG8gdjEuMjQuOQ==-->Update dependency go to v1.24.9<!--description--> - [PR](forgejo/runner#1086): <!--number 1086 --><!--line 0 --><!--description VXBkYXRlIG1vZHVsZSBnb2xhbmcub3JnL3gvdGVybSB0byB2MC4zNi4w-->Update module golang.org/x/term to v0.36.0<!--description--> - [PR](forgejo/runner#1085): <!--number 1085 --><!--line 0 --><!--description VXBkYXRlIG1vZHVsZSBnaXRodWIuY29tL2RvY2tlci9kb2NrZXIgdG8gdjI4LjUuMStpbmNvbXBhdGlibGU=-->Update module github.com/docker/docker to v28.5.1+incompatible<!--description--> - [PR](forgejo/runner#1084): <!--number 1084 --><!--line 0 --><!--description VXBkYXRlIG1vZHVsZSBnaXRodWIuY29tL3JoeXNkL2FjdGlvbmxpbnQgdG8gdjEuNy44-->Update module github.com/rhysd/actionlint to v1.7.8<!--description--> - [PR](forgejo/runner#1082): <!--number 1082 --><!--line 0 --><!--description VXBkYXRlIG1vZHVsZSBjb2RlLmZvcmdlam8ub3JnL2Zvcmdlam8vYWN0aW9ucy1wcm90byB0byB2MC41LjM=-->Update module code.forgejo.org/forgejo/actions-proto to v0.5.3<!--description--> - [PR](forgejo/runner#1078): <!--number 1078 --><!--line 0 --><!--description VXBkYXRlIG1vZHVsZSBjb25uZWN0cnBjLmNvbS9jb25uZWN0IHRvIHYxLjE5LjE=-->Update module connectrpc.com/connect to v1.19.1<!--description--> - [PR](forgejo/runner#1072): <!--number 1072 --><!--line 0 --><!--description VXBkYXRlIG1vZHVsZSBnaXRodWIuY29tL2RvY2tlci9jbGkgdG8gdjI4LjUuMStpbmNvbXBhdGlibGU=-->Update module github.com/docker/cli to v28.5.1+incompatible<!--description--> - [PR](forgejo/runner#1069): <!--number 1069 --><!--line 0 --><!--description VXBkYXRlIGRlcGVuZGVuY3kgZ28gdG8gdjEuMjQuOA==-->Update dependency go to v1.24.8<!--description--> - [PR](forgejo/runner#1066): <!--number 1066 --><!--line 0 --><!--description VXBkYXRlIG1vZHVsZSBnaXRodWIuY29tL2RvY2tlci9jbGkgdG8gdjI4LjUuMCtpbmNvbXBhdGlibGU=-->Update module github.com/docker/cli to v28.5.0+incompatible<!--description--> - [PR](forgejo/runner#1062): <!--number 1062 --><!--line 0 --><!--description VXBkYXRlIG1vZHVsZSBnaXRodWIuY29tL2dvLWdpdC9nby1naXQvdjUgdG8gdjUuMTYuMw==-->Update module github.com/go-git/go-git/v5 to v5.16.3<!--description--> - [PR](forgejo/runner#1059): <!--number 1059 --><!--line 0 --><!--description Y2hvcmUoZG9jcyk6IGNsYXJpZnkgdGhlIGJlaGF2aW9yIG9mIGBbY29udGFpbmVyXS5kb2NrZXJfaG9zdGA=-->chore(docs): clarify the behavior of `[container].docker_host`<!--description--> - [PR](forgejo/runner#1058): <!--number 1058 --><!--line 0 --><!--description VXBkYXRlIG1vZHVsZSBnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1ZiB0byB2MS4zNi4xMA==-->Update module google.golang.org/protobuf to v1.36.10<!--description--> - [PR](forgejo/runner#1053): <!--number 1053 --><!--line 0 --><!--description Y2hvcmU6IHRlYWNoIHJlbm92YXRlIGFib3V0IGV4YW1wbGUtbHhjLXN5c3RlbWQueW1s-->chore: teach renovate about example-lxc-systemd.yml<!--description--> - [PR](forgejo/runner#1055): <!--number 1055 --><!--line 0 --><!--description VXBkYXRlIGZvcmdlam8tcnVubmVyIHRvIHYxMS4xLjI=-->Update forgejo-runner to v11.1.2<!--description--> - [PR](forgejo/runner#1047): <!--number 1047 --><!--line 0 --><!--description Y2hvcmUoY2xlYW51cCk6IGx4Yy1oZWxwZXJzIGRvZXMgbm90IG5lZWQgYSBnbG9iYWwgbG9jaw==-->chore(cleanup): lxc-helpers does not need a global lock<!--description--> - [PR](forgejo/runner#1050): <!--number 1050 --><!--line 0 --><!--description VXBkYXRlIGRlcGVuZGVuY3kgZm9yZ2Vqby9seGMtaGVscGVycyB0byB2MS4xLjE=-->Update dependency forgejo/lxc-helpers to v1.1.1<!--description--> <!--end release-notes-assistant--> </details> --- ### Configuration 📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC), Automerge - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNjkuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE2OS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJLaW5kL0RlcGVuZGVuY3lVcGRhdGUiLCJydW4tZW5kLXRvLWVuZC10ZXN0cyJdfQ==--> Reviewed-on: forgejo/runner#1121 Reviewed-by: Mathieu Fenniak <mfenniak@noreply.code.forgejo.org> Co-authored-by: Renovate Bot <bot@kriese.eu> Co-committed-by: Renovate Bot <bot@kriese.eu> |
||
| .forgejo | ||
| act | ||
| contrib | ||
| examples | ||
| internal | ||
| release-notes | ||
| testutils | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .golangci.yml | ||
| .pre-commit-hooks.yaml | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| main.go | ||
| Makefile | ||
| README.md | ||
| RELEASE-NOTES.md | ||
| renovate.json | ||
Forgejo Runner
A daemon that connects to a Forgejo instance and runs jobs for continuous integration. The installation and usage instructions are part of the Forgejo documentation.
Reporting security-related issues
Sensitive security-related issues should be reported to security@forgejo.org using encryption.
License
The Forgejo runner is distributed under the terms of the GPL version 3.0 or any later version.
Architectures & OS
The Forgejo runner is supported and tested on amd64 and arm64 (binaries and containers) on Operating Systems based on the Linux kernel.
Work may be in progress for other architectures and you can browse the corresponding issues to figure out how they make progress. If you are interested in helping them move forward, open an issue. The most challenging part is to setup and maintain a native runner long term. Once it is supported by Forgejo, the runner is expected to be available 24/7 which can be challenging. Otherwise debugging any architecture specific problem won't be possible.
Hacking
The Forgejo runner is a dependency of the setup-forgejo action. See the full dependency graph for a global view.
Building
- Install Go and
make(1) make build
Linting
make lint-checkmake lint# will fix some lint errors
Testing
The workflow that runs in the CI uses similar commands.
Without a Forgejo instance
- Install Docker
make test integration-test
The TestRunner_RunEvent test suite contains most integration tests
with real-world workflows and is time-consuming to run. During
development, it is helpful to run a specific test through a targeted
command such as this:
go test -count=1 -run='TestRunner_RunEvent$/local-action-dockerfile$' ./act/runner
With a Forgejo instance
- Run a Forgejo instance locally (for instance at http://0.0.0.0:8080) and create as shared secret
export FORGEJO_RUNNER_SECRET='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
export FORGEJO_URL=http://0.0.0.0:8080
forgejo forgejo-cli actions register --labels docker --name therunner --secret $FORGEJO_RUNNER_SECRET
make test integration-test# which will run addional tests because FORGEJO_URL is set
end-to-end
- Follow the instructions from the end-to-end tests to run actions tests locally.
./end-to-end.sh actions_teardown# stop the Forgejo and runner daemons running in the end-to-end environment( cd ~/clone-of-the-runner-repo ; make build ; cp forgejo-runner /tmp/forgejo-end-to-end/forgejo-runner )# install the runner built from sources./end-to-end.sh actions_setup 13.0# start Forgejo v13.0 and the runner daemon in the end-to-end environment./end-to-end.sh actions_verify_example echo# run the echo workflowxdg-open http://127.0.0.1:3000/root/example-echo/actions/runs/1# see the logs workflowless /tmp/forgejo-end-to-end/forgejo-runner.log# analyze the runner logsless /tmp/forgejo-end-to-end/forgejo-work-path/log/forgejo.log# analyze the Forgejo logs