PR #18 unblocked the AMO sign + Forgejo asset upload, but the next step failed:
::error::@actions/artifact v2.0.0+, upload-artifact@v4+ and download-artifact@v4+ are not currently supported on GHES.
Forgejo Actions / act_runner doesn't implement GitHub's v4 artifact service. Downgrading to v3 might work but is also flaky on some runner versions.
Fix
The Actions-artifact handoff between sign-extension and build-web was redundant — sign-extension already uploaded the signed XPI to the ext-<version> Forgejo release as an asset. Just have build-web download from that same source of truth.
Remove actions/upload-artifact@v4 from sign-extension
Remove actions/download-artifact@v4 from build-web
build-web now does: GET /releases/tags/ext-<version> → extract asset id via python → curl download asset → place in frontend/public/extension/
Also removed the now-redundant "Download cached signed XPI" step from sign-extension (it was for cache-hit cases; build-web fetches independently so sign-extension only needs to ensure the cache exists)
Cache state right now
AMO has v1.0.3 signed
ext-1.0.3 Forgejo release EXISTS with fabledcurator-1.0.3.xpi asset (verified — the asset upload happened BEFORE the artifact step that failed)
So the next build.yml run on main will hit cache: sign-extension takes the no-op path; build-web downloads and bundles. Should land a :latest image with the XPI on first try.
## Why
PR #18 unblocked the AMO sign + Forgejo asset upload, but the next step failed:
```
::error::@actions/artifact v2.0.0+, upload-artifact@v4+ and download-artifact@v4+ are not currently supported on GHES.
```
Forgejo Actions / act_runner doesn't implement GitHub's v4 artifact service. Downgrading to v3 might work but is also flaky on some runner versions.
## Fix
The Actions-artifact handoff between `sign-extension` and `build-web` was redundant — `sign-extension` already uploaded the signed XPI to the `ext-<version>` Forgejo release as an asset. Just have `build-web` download from that same source of truth.
- Remove `actions/upload-artifact@v4` from `sign-extension`
- Remove `actions/download-artifact@v4` from `build-web`
- `build-web` now does: GET `/releases/tags/ext-<version>` → extract asset id via python → curl download asset → place in `frontend/public/extension/`
- Also removed the now-redundant "Download cached signed XPI" step from sign-extension (it was for cache-hit cases; build-web fetches independently so sign-extension only needs to ensure the cache exists)
## Cache state right now
- AMO has v1.0.3 signed
- `ext-1.0.3` Forgejo release EXISTS with `fabledcurator-1.0.3.xpi` asset (verified — the asset upload happened BEFORE the artifact step that failed)
So the next `build.yml` run on main will hit cache: sign-extension takes the no-op path; build-web downloads and bundles. Should land a `:latest` image with the XPI on first try.
After merge + CI green, I'll cut `v26.05.25.6`.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Why
PR #18 unblocked the AMO sign + Forgejo asset upload, but the next step failed:
Forgejo Actions / act_runner doesn't implement GitHub's v4 artifact service. Downgrading to v3 might work but is also flaky on some runner versions.
Fix
The Actions-artifact handoff between
sign-extensionandbuild-webwas redundant —sign-extensionalready uploaded the signed XPI to theext-<version>Forgejo release as an asset. Just havebuild-webdownload from that same source of truth.actions/upload-artifact@v4fromsign-extensionactions/download-artifact@v4frombuild-webbuild-webnow does: GET/releases/tags/ext-<version>→ extract asset id via python → curl download asset → place infrontend/public/extension/Cache state right now
ext-1.0.3Forgejo release EXISTS withfabledcurator-1.0.3.xpiasset (verified — the asset upload happened BEFORE the artifact step that failed)So the next
build.ymlrun on main will hit cache: sign-extension takes the no-op path; build-web downloads and bundles. Should land a:latestimage with the XPI on first try.After merge + CI green, I'll cut
v26.05.25.6.🤖 Generated with Claude Code