ci(forgejo): rewrite release workflow in pure bash + curl #25
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/forgejo-release-native-bash"
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?
Le job
validate-releasedu workflow release Forgejo échoue au démarrage du container avecexec: "node": executable file not found in $PATH.L'image Docker du runner (
pazof/yavsc-build-env:debian12-dotnet10-android36-v1) n'a pas Node.js. Toute action Node-based (actions/checkout@v7,actions/upload-artifact@v7,rasterstate/forgejo-release-action) plante audocker execinitial.Fix : réécriture complète du workflow en bash + curl, sans aucune action tierce.
actions/checkoutremplacé pargit clone+git fetch --tags+git checkout $TAGexplicites (full history, tags inclus →GitVersion.MsBuildcontent).rasterstate/forgejo-release-actionremplacée par des appels directs à l'API REST Forgejo (/api/v1/repos/.../releases,/api/v1/.../assets), avecpython3pour générer/parser le JSON (jq non garanti dans l'image).${{ secrets.GITHUB_TOKEN }}(runner-provided).Suite : si l'image runner est mise à jour pour inclure Node, on peut revenir à l'action tierce en revertant ce commit.
The runner's docker label points at pazof/yavsc-build-env, a Debian image without Node.js. Any action like actions/checkout@v7, actions/upload-artifact@v7, rasterstate/forgejo-release-action, etc. fails at container start with 'executable file not found in /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/paul/.dotnet/tools:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/home/paul/.nvm/versions/node/v22.23.0/bin:/home/paul/.local/bin:/home/paul/.npm-global/bin:/home/paul/bin:/home/paul/.nix-profile/bin'. This workflow is rewritten in pure bash: - replace actions/checkout with explicit git clone + checkout (full history + tags so GitVersion.MsBuild is happy); - merge the two jobs into one (no inter-job artifacts needed since everything shares the runner's filesystem); - replace rasterstate/forgejo-release-action with direct calls to the Forgejo REST API (/api/v1/repos/.../releases, .../assets), with python3 used to build and parse JSON bodies (jq not guaranteed in the runner image). Auth: ${{ secrets.GITHUB_TOKEN }} (runner-provided). The rasterstate action or any other Node-based action can be reinstated later if the runner image is swapped for one with Node installed.