fix(exec): serve the v4 artifact API so upload-artifact v4 and later work (#1341)

`exec` forwarded the toolkit's ArtifactService calls to an instance it never registered, and its random runtime token held no backend IDs, so `actions/upload-artifact` and `actions/download-artifact` v4 and later failed.

The local artifact server now serves the v4 API, including the single Put Blob uploads docker/build-push-action uses. `exec` gives each workflow its own unsigned JWT runtime token and artifact run, so artifact names conflict and carry over between runs as on GitHub. Artifacts default to a temporary directory instead of the workspace that jobs copy.

Co-authored-by: silverwind <[email protected]>
Co-authored-by: Lunny Xiao <[email protected]>
Reviewed-on: https://gitea.com/gitea/runner/pulls/1341
Reviewed-by: Lunny Xiao <[email protected]>
Reviewed-by: silverwind <[email protected]>
Co-authored-by: bircni <[email protected]>
This commit is contained in:
authored and silverwind committed 2026-10-28 03:52:53 +00:00
1 parent a76ccd7020
commit d77e216674
16 files changed
+630 -30

No files matched your search

+15
View File
@@ -0,0 +1,15 @@
on: push
jobs:
roundtrip:
runs-on: ubuntu-latest
steps:
- run: mkdir -p out && echo exec-payload > out/data.txt
- uses: actions/upload-artifact@v7
with:
name: exec-artifact
path: out/data.txt
- uses: actions/download-artifact@v8
with:
name: exec-artifact
path: got
- run: grep -q exec-payload got/data.txt