cherry-picking Nektos Act commits #678
Labels
No labels
FreeBSD
Kind/Breaking
Kind/Bug
Kind/Chore
Kind/DependencyUpdate
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
Windows
linux-powerpc64le
linux-riscv64
linux-s390x
run-end-to-end-tests
run-forgejo-tests
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo/runner#678
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
TL;DR: Commits that may be worth looking into at this time:
The commits from Nektos ACT that may not yet be in this soft fork are https://github.com/nektos/act/compare/v0.2.59...v0.2.79 (211). I assume @achyrva this is the list you work on. Out of those the majority are upgrades which can be discarded because they are now managed via renovate.
The last time Forgejo ACT was in sync with Nektos ACT was in sync was March 2024 with v0.2.59 which was a series of commit on top of on top of Gitea ACT v0.259.1.
Gitea ACT v0.260.0 however was hard pushed and trashed all commits down to a9298d936c5265461dd8f6322961232b08fc6d12, three years ago. And applied ~100 commits on top of that. IIRC the motivation was that there were too many regressions introduced by cherry-picks from Nektos ACT that did not receive proper review, but maybe there were other reasons. Whatever they were, they did not cause issues for the Forgejo runner. In conclusion I think this is not worth digging into.
The commits from Gitea ACT that may be of interest to the Forgejo ACT for are https://gitea.com/gitea/act/compare/v0.260.0...v0.261.6 (29).
I noticed https://github.com/actions-oss exists while reading this comment from the primary author of Nektos ACT from January 2025.
There has been a few releases there but no stars on the main repository which is telling in terms of adoption in the GitHub context.
To be followed in any case.
Browsing the list of changes in Nektos ACT - https://github.com/nektos/act/compare/v0.2.59...v0.2.79
I came up with the following list (out of 211, excluding those cherry-picked already). The list is loosely (i.e. non consistently) updated to remove the commits cherry-picked after 2 July 2025 - the date this list was compiled.
Legend:
--validateand--strict(#2717) - ✅workflow schema validation can be in strict mode or not forgejo/act#180/var/run/docker.sock(#2181) ⏩ the CLI is not usedA new cache was introduced August 2023 and is not used by Forgejo. See also Gitea ACT cache related commits.
017db5edaeb0c54edc7875e4ad93 * fix: docker buildx cache restore not working (#https://github.com/nektos/act/pull/2236)✅ #783forgejo/act#170 cherry-picked the following (removed from the full list)
Each remaining commit (~40 if ignoring those to be skipped ⏩ ) was classified for easier reference and grouping commits that relate to the same topic.
@Kwonunn you may be interested by those 🟦 cache related
@achyrva I linked to some of your pull requests but I was not thorough, if you see any that I missed, please let me know. The following are those that were already merged in.
dryrunparameter (#2311) ⏩ the CLI is not used forgejo/act#158@earl-warren , you did a great work to collect all delta excluding dependencies update commits. Thank you.
If I understood you correctly, the team decided to suspend the process of reducing delta till the time of taking a strategy how to move forward.
I would like to be informed about your decisions or even participate in discussion.
It is not suspended.
All discussions are in this tracker, there are no other space where discussions happen on that topic.
If you do decide to help porting/cherry-picking, please make sure to do it only one pull request at a time. Also make sure to review all comments sent to your past pull requests as well as the pull requests that reverted some of the changes. It was quite time consuming and I'd like to make sure that won't happen again. I'll be very careful when reviewing your pull requests moving forward.
It's clear now.
I propose my following steps:
Tell me, please, if you have any concerns.
Also, could you clarify for me your thought about https://github.com/actions-oss
@achyrva wrote in #678 (comment):
Please start with
forgejo/act@2ad5ff74I have prepared a complete list of all the commits I found. Based on the suggested legend, I have categorized them and formatted them as a checklist. Here is the result. Please edit it if necessary.
List of commits
Legend
🍒 - worth cherry-picking
🟨 - reusable workflow related
🟩 - artifact v4 related
⏩ - skip
💡 - unsure if it is worth picking, needs thinking
Commits by Category
🍒 Worth Cherry-Picking
1154f0d9feat: log parsed commands and step summary (#2761)517c3ac4fix: reporting fetch failure as job error and log the error (#2715)c6a77549Disable "unable to get git repo" when none exists. (#2495)be516017parse_env_file discard utf8 bom (#2638)9dd0854aAdded support for dereferenced map properties (#2635)b4ef6fb4fix: short sha has at least four digits (#2540)e6b5062efix: amd64 arch to X64 (#2580)2c0e3feafix: tests with validation errors were skipped (#2496)5ffec84ffix: if condition in composite action misbehaves (#2473)a34d9c6drun_context: add GITHUB_RUN_ATTEMPT (#2458)3c7eda7ffix: docker stub and add a test for this (#2355)2ad5ff74fix: add missing service container health check (#2354)e4607fc7fix: skip service container for empty image (#2281)b5ad3c4afix: composite action input pollution (#2348)843cd94cAdd codespell support (config, workflow to detect/not fix) and make it fix few typos (#2296)🟦 Cache related
a8ac5293fix: wrap subpath in '' (#2754) (#2755)49710c85fixes #2689 Make the external url of cache server configurable if necessary (#2690)95e411dafix: remote docker actions new action cache and dry run mode (#2513)16bdce5ffeat: GoGitActionCache shallow fetch (#2677)9142ed9bfeat: improve new action cache logging (#2474)f825e42cfix: cache adjust restore order of exact key matches (#2267)b9382a2cSupport overwriting caches (#2265)119ceb81fix: rootless permission bits (new actions cache) (#2242)5601fb0erefactor: simpilfy go-git cache (#2208)852959e1feat: offline mode for new action cache (#2173)🟩 Artifact v4 related
e3b4e3adadd test for listartifacts v4 filter (#2507)f77a443efix: merge-multiple artifacts were broken (#2505)32b6bb7afix: artifact v4 upload above 8MB (#2402)e1e5671eActions Artifacts v4 backend (#2224)🟨 Reusable workflow related
deea8ec8fix: prevent unintended input replacement in reusable workflows with workflow_dispatch when using workflow_call (#2502)b917ecc1fix: update reusable workflow input handling (#2349)Schema validation related
cf09fd0afix: use non strict schema to allow some undefined behavior (#2524)41430177fix: schema validation for job if functions (#2446)102e6cbcfeat: Validate GitHub Actions schema (#2416)💡 Unsure if it is worth picking
51147d45Incorporate Debug, Warn, Error logging. (#2490)60a499darefactor logger570ccf39Fix #2363. Add /pre- and /post-entrypoint handling (#2394)2e117a4dbug/issue #2448 - manage special bash options when no shell is defined (#2449)ac6a465efeat: Test writing remote Actions locally (#2155)⏩ Skip
16b86a64feat: add cli option to set concurrent jobs count (#2762)bd4bc99efeat: add models permission level for AI inference responses (#2767)bea04dd8feat: Support graceful job step cancellation (#2714)0098044dReport the elapsed time for each workflow step (#2700)404620bdAdd tests against reading config files (#2682)c956febfadd test workflows to cmd pkg (#2665)7fec28d6fix: secret file reading (#45) (#2664)cb26fd86Use gh auth token for default GITHUB_TOKEN secret (#2651)e6366849Detect available flags for extensions (#2557)fe017a10feat: Adding in logic to check if act needs to be downloaded (#2575)a1a96da1fix: changed location of actrc in info message (#2373)be89cbcfFix install sh usage (#2454)013c0d4efeat: generate a manual page automatically with cobra/doc (#2352)60a2fed3fix GOOS parsing to match expected GHA RUNNER_OS values (#2422)cd8b710fremove double negation in --help (#2405)8cdc3fcbUpdate action.yml (#2293)89e3c146fix: favor command-line over files (#2274)e1cd7c91fix: logo and demo asset urls (#2226)55a8f9afAdd riscv64 binary release (#2350)f2e65e1dfix: Rootless error concerning /var/run/docker.sock (#2181)TBD. Uncategorised
8d2fa04db5ci: make codecov informational only (#2924)b5469ac4cafix: add missing punctuation to error report (#2752) (#2753)f0da96d34edocs: Remove Gitter (#2678)8a18fb08adchore(ci): disable invalid test case (#2875)324bab61f0ci: disable stale bot (#2745)c2425cd608update-choco (#2742)460ca18a19chore(ci): Only promote if possible (#2721)cf0df9da37chore(deps): bump to go1.24 due to deps updates (#2705)eb46e8aa5aRefer to nektosact.com (#2692)de962cba8fClarify --no-skip-checkout flag (#2687)326d516f64chore: mergify and codeowners do not request review (#2683)c739bc4a4fUpdate .gitleaksignore (#2676)f19f6dd651chore: Group DependableBot Updates monthly (#2673)c2409db605chore: move to environment secrets (#2653)89755d3f25chore: remove comments from mergify on merge conflict or check failures (#2652)5ce39f621cAdd GitHub Local Actions to README (#2588)0ca1e18334Fix typo in --action-offline-mode option description (#2590)7172fc31d1chore: upgrade dependencies (#2589)6de25a53bcfix: make node tool non volatile (#2372)4977ba910cMeta-copy-symlinks-new-actions-cache (#2337)070c257640Add documentation for dryrun parameter (#2311)657a3d768cFix for issue 2232: Many lines of "Could not find any stages to run" on run (#2272)2df924c509Bump docker to v26 (#2289)5a9dd3d0eafix: skipped jobs have no result (#2276)ac13a1b20dchore: fix some comments (#2279)cdc22da7f0Remove local action cache if remote has changed (#2284)d2c341332bchore: fix codecov (#2288)d9a19c8b02Trivial: reduce log spam. (#2256)3949d74af5chore: remove repetitive words (#2259)f56dd65ff6test: use ping to improve network test (#2266)352ad41ad2fix function name in comment (#2240)75e4ad93f4fix: docker buildx cache restore not working (#2236)a62063b73fBump mergo to v1.0.0 with new module URL (#2403)2feff3f193build(deps): bump github.com/timshannon/bolthold to v0.0.0-20240314194003-30aac6950928 (#2248)6e80373eb6Shrink Readme (#2198)@earl-warren wrote in #678 (comment):
Please.
@achyrva I would appreciate if you could focus on contributing a single pull request at a time and ensure it is done exactly right. It would allow me to focus on reviewing it properly and carefully. I failed to see problems in your past pull requests and that was my bad as a reviewer. But I then had to spend a lot of time going over all other pull request and then fix regressions. I would like to avoid that.
The list above would also need careful reviewing but it is a much larger work and I'd rather not do that until we have a few good PR merged in. This is why I asked you to start with this particular pull request.
Is that OK with you?
@earl-warren wrote in #678 (comment):
Of course! I'm also interested in doing this work well. The list is just a starting point and I just wanted to structure it in a way that is more understandable to me. Pull request with commit 2ad5ff74 will be tomorrow
@earl-warren , please, look at forgejo/act#176
git log --oneline gitea/main..v0.260.0Legend:
run-namefield for workflows (#137) ⏩ the motivation for this is unclear. It is nice to have but not really necessary. see also https://github.com/go-gitea/gitea/pull/34301/files. Let's wait for someone to ask.GITEA_environment variables (#112) ⏩ Gitea specificae5411b096usesstring as cache dir name (#117) 🟦 forgejo/act#186f825e42c fix: cache adjust restore order of exact key matches (#2267) 🟦 exists in ACT -b9382a2c Support overwriting caches (#2265) 🟦 exists in ACT -75e4ad93 fix: docker buildx cache restore not working (#2236) 🟦 exists in ACT -chore: merge Nektos Act updates into Forgejo Actto chore: cherry-picking Nektos Act commitschore: cherry-picking Nektos Act commitsto cherry-picking Nektos Act commitsAll cache related items (the local runner cache provided to the jobs as well as the not-used action cache) in both Nektos ACT and Gitea ACT are accounted for.
@Crown0815 there is a windows specific fix that you may want to add https://github.com/nektos/act/pull/2638. It probably cherry-picks fine but in the absence of windows test environment in Forgejo, it can't be tested.
The following are left to work on
Concurrency 🍒
Artifacts v4 🟩
Reusable workflows 🟨
@mfenniak would you be interested in picking one of the above? ( concurrency (🍒) reusable workflows (🟨) artifacts v4 (🟩) )? I have not yet explored the associated commits but I suspect concurrency is the easiest.
@earl-warren I'll take a shot at concurrency. 👍
re: section "Artifacts v4", I don't think there's anything to cherry-pick there. All of the work seems to the artifact server support which was removed from forgejo's runner (#740).
I confirm that those commits are for the runner side implementation of artifacts v4, which is redundant with the Forgejo artifacts v4 implementation.
@earl-warren wrote in #678 (comment):
I'll take a look at those now. Unless you're already on it @mfenniak?
@earl-warren I have not. 👍
It turns out to not be much. But valuable bug fixes which is good.
Reusable workflows 🟨
Reusable workflows 🟨
This concludes the harvest up until today. Unpinned and replaced by a fresh one to be worked on later. I set a reminder in three months. Given the pace at which they are going it should be frequent enough.
#835