ci: swap artifact upload to the mirrored action (issue 2270)
Both desktop upload steps used actions/upload-artifact@v3, which reports success while Gitea stores the result in a format its v4-only artifact API will never serve back — 110 artifacts on this repo are on disk, have valid DB rows, and are invisible to the REST API, the web download route and the MCP tools alike. Green jobs producing nothing retrievable. Point both at bvandeusen/upload-artifact (pull mirror of the Forgejo project's fork, GHES refusal disabled), pinned by SHA because the mirror auto-syncs. Not actions/upload-artifact@v4: its isGhes() throws on the hostname before opening a connection, so no server-side change reaches it. Also drop continue-on-error and set if-no-files-found: error on both steps. Between them, a failed or empty upload was reported as a green run — the same silence that let this go unnoticed for a month. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -154,20 +154,25 @@ jobs:
|
||||
run: bash desktop/packaging/arch/package-prebuilt.sh
|
||||
|
||||
# Make the built .deb + .AppImage downloadable from the run (for hand-testing).
|
||||
# continue-on-error: the Forgejo artifact backend may not be configured yet; a
|
||||
# failed upload must not fail the build itself.
|
||||
# Forgejo doesn't support the v4 artifact protocol (@actions/artifact v2+),
|
||||
# so pin v3, which uses the older protocol the instance accepts.
|
||||
# Mirrored action, never actions/upload-artifact: @v4+ throws
|
||||
# GHESNotSupportedError on the hostname before it connects, and @v3 uploads
|
||||
# something Gitea stores but will never serve back (it returns artifacts only
|
||||
# through the v4 API, which filters on content_encoding='application/zip').
|
||||
# Pinned by SHA — the mirror auto-syncs, so a moved upstream tag would
|
||||
# silently change what runs. See Scribe issues 2255 / 2270.
|
||||
# No continue-on-error: a swallowed upload failure is exactly how 110
|
||||
# unreachable artifacts accumulated here unnoticed. Fail loudly instead.
|
||||
- name: Upload bundles
|
||||
continue-on-error: true
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: https://git.fabledsword.com/bvandeusen/upload-artifact@cb8afe72b42edc798abfb8fcb556cf660d894245
|
||||
with:
|
||||
name: thoughtsync-linux
|
||||
path: |
|
||||
desktop/src-tauri/target/release/bundle/appimage/*.AppImage
|
||||
desktop/src-tauri/target/release/bundle/deb/*.deb
|
||||
desktop/src-tauri/target/release/bundle/arch/*.pkg.tar.*
|
||||
if-no-files-found: warn
|
||||
# error, not warn: a build that bundles nothing should report as a
|
||||
# failure, not as a green run with an empty artifact.
|
||||
if-no-files-found: error
|
||||
|
||||
# Tag builds only: publish a real, versioned Fabled-Git Release with the
|
||||
# AppImage + .deb attached — the stable fetch target the install script and
|
||||
@@ -262,13 +267,15 @@ jobs:
|
||||
--config "$updater"
|
||||
working-directory: desktop/src-tauri
|
||||
|
||||
# Mirrored action, never actions/upload-artifact — see the Linux job's
|
||||
# Upload bundles step for the full reasoning. Pinned by SHA because the
|
||||
# mirror auto-syncs.
|
||||
- name: Upload installer
|
||||
continue-on-error: true
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: https://git.fabledsword.com/bvandeusen/upload-artifact@cb8afe72b42edc798abfb8fcb556cf660d894245
|
||||
with:
|
||||
name: thoughtsync-windows
|
||||
path: desktop/src-tauri/target/x86_64-pc-windows-msvc/release/bundle/nsis/*.exe
|
||||
if-no-files-found: warn
|
||||
if-no-files-found: error
|
||||
|
||||
# Publishes to the SAME release as the Linux job. Safe to run twice: the
|
||||
# script reuses an existing release (409) and nullglob means each job uploads
|
||||
|
||||
Reference in New Issue
Block a user