[CrashReporting] Drop the invalid --release from the symbol upload

`debug-files upload` never accepted `--release` (checked against the pinned
sentry-cli 3.8.0: the subcommand declares --org/--project and a set of
type/id/scan options, and execute() reads no release; the only global flags are
--url/--header/--auth-token/--log-level/--quiet/--allow-failure). Clap rejects
the unknown flag before any upload happens, so every tag build has been shipping
without symbols, with continue-on-error keeping the release pipeline green.

Release association is also the wrong mechanism: debug information files are
matched to events by debug ID via the event's debug_meta. The Sentry release of
a native event comes from the event itself (COCKATRICE_SENTRY_RELEASE), not from
the DIF upload. Remove the flag and the now-unused SENTRY_RELEASE env from both
invocations (Linux, and Windows/macOS).

The symbol upload stays continue-on-error (a Sentry outage must not block the
release assets); revisit once it has proven itself on a tag.
This commit is contained in:
Lukas Brübach 2026-10-19 09:19:46 +02:00
parent 8d6aa9e420
commit c4ba4047e1

View file

@ -289,10 +289,6 @@ jobs:
shell: bash shell: bash
env: env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
# Same release string the client reports its events under (COCKATRICE_SENTRY_RELEASE
# = PROJECT_VERSION, see cmake/CrashReporting.cmake), so stack traces from this build
# de-symbolicate against these symbols.
SENTRY_RELEASE: ${{ needs.configure.outputs.sentry_release }}
run: | run: |
paths=() paths=()
for dir in build/cockatrice build/oracle build/servatrice; do for dir in build/cockatrice build/oracle build/servatrice; do
@ -303,7 +299,11 @@ jobs:
exit 0 exit 0
fi fi
# Project slug on Sentry; must match the project the baked DSN points at. # Project slug on Sentry; must match the project the baked DSN points at.
sentry-cli debug-files upload --org cockatrice --project cockatrice-desktop --release "$SENTRY_RELEASE" "${paths[@]}" # No --release here: `debug-files upload` has no such option (sentry-cli errors on
# the unknown flag and uploads nothing), and debug information files are matched to
# events by debug ID via the event's debug_meta, not by release. The release grouping
# comes from the client event itself (COCKATRICE_SENTRY_RELEASE).
sentry-cli debug-files upload --org cockatrice --project cockatrice-desktop "${paths[@]}"
# Delete used cache to emulate a ccache update. See https://github.com/actions/cache/issues/342 # Delete used cache to emulate a ccache update. See https://github.com/actions/cache/issues/342
- name: "Delete remote compiler cache (ccache)" - name: "Delete remote compiler cache (ccache)"
@ -643,10 +643,6 @@ jobs:
shell: bash shell: bash
env: env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
# Same release string the client reports its events under (COCKATRICE_SENTRY_RELEASE
# = PROJECT_VERSION, see cmake/CrashReporting.cmake), so stack traces from this build
# de-symbolicate against these symbols.
SENTRY_RELEASE: ${{ needs.configure.outputs.sentry_release }}
run: | run: |
paths=() paths=()
if [[ '${{ matrix.os }}' == 'Windows' ]]; then if [[ '${{ matrix.os }}' == 'Windows' ]]; then
@ -675,7 +671,9 @@ jobs:
exit 0 exit 0
fi fi
# Project slug on Sentry; must match the project the baked DSN points at. # Project slug on Sentry; must match the project the baked DSN points at.
sentry-cli debug-files upload --org cockatrice --project cockatrice-desktop --release "$SENTRY_RELEASE" "${paths[@]}" # No --release: see the Linux leg above — the flag does not exist on
# `debug-files upload` and DIFs are matched by debug ID, not release.
sentry-cli debug-files upload --org cockatrice --project cockatrice-desktop "${paths[@]}"
# CPack reports a failed makensis run as "Problem running NSIS command" # CPack reports a failed makensis run as "Problem running NSIS command"
# plus a path to NSISOutput.log, and that log lives only on the runner, so # plus a path to NSISOutput.log, and that log lives only on the runner, so