Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/WindowsInstall.yml
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,6 @@ jobs:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SENTRY_ORG: berry-studios
SENTRY_PROJECT: loop-pdf
SENTRY_URL: https://de.sentry.io
run: |
.\scripts\ci\upload_sentry_debug_files.ps1 -BuildDir "${env:GITHUB_WORKSPACE}\loop\build"
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/reusable-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,6 @@ jobs:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SENTRY_ORG: berry-studios
SENTRY_PROJECT: loop-pdf
SENTRY_URL: https://de.sentry.io
run: |
.\scripts\ci\upload_sentry_debug_files.ps1 -BuildDir "${env:GITHUB_WORKSPACE}\loop\build"
6 changes: 3 additions & 3 deletions Desktop/io.github.mberrys.Loop-pdf.appdata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
<category>Utility</category>
</categories>
<developer_name>Michael Berry</developer_name>
<url type="homepage">https://github.com/mberrys/Loop-pdf</url>
<url type="bugtracker">https://github.com/mberrys/Loop-pdf/issues</url>
<url type="help">https://github.com/mberrys/Loop-pdf</url>
<url type="homepage">https://github.com/studio-berry/loop</url>
<url type="bugtracker">https://github.com/studio-berry/loop/issues</url>
<url type="help">https://github.com/studio-berry/loop</url>
<content_rating type="oars-1.1"/>
<launchable type="desktop-id">io.github.mberrys.Loop-pdf.desktop</launchable>
<releases>
Expand Down
4 changes: 4 additions & 0 deletions changes/cursor-fix-appstream-urls-8f37.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Category: fixed
Audience: developers
Breaking-Change: no
Summary: Point AppStream metainfo URLs at studio-berry/loop for Linux AppImage packaging, and resolve Windows Sentry debug-file upload from LOOP_SENTRY_DSN in CMakeLists.txt so MSI packaging is not blocked by a stale project slug.
2 changes: 1 addition & 1 deletion docs/CI.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ the signing step refuses to run against an unpinned toolchain.
Windows Release builds with `LOOP_ENABLE_SENTRY` emit PDBs (`/Zi` +
`/DEBUG:FULL`) so crashpad minidumps can be symbolicated. After the Windows
CI and MSI packaging jobs, `scripts/ci/upload_sentry_debug_files.ps1`
uploads Loop PDBs to `berry-studios/loop-pdf` on the EU region
uploads Loop PDBs to the `berry-studios` EU project id encoded in `LOOP_SENTRY_DSN`
(`https://de.sentry.io`) using the pinned `sentryCli` binary. GitHub
Actions cannot reference `secrets` in `if:` conditionals, so the workflow
always runs the step; `upload_sentry_debug_files.ps1` no-ops when
Expand Down
2 changes: 1 addition & 1 deletion docs/PRODUCTION_RUNBOOK.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ Debug Files — they are not Issues or traces.

**Privacy:** Desktop sentry-native 0.15.x does not send default PII (`send_default_pii` is NX-only in that pin). Crashes may still include OS-level paths and PDF bytes in minidumps — set `SENTRY_DSN=off` in high-classification environments. CI sets `SENTRY_DSN=off` so test runs do not flood the project.

**Debug files:** Windows CI uploads Loop PDBs to `berry-studios/loop-pdf` (EU) when `SENTRY_AUTH_TOKEN` is set. Without those files, crash stacks stay unsymbolicated. Store the token as a GitHub Actions secret with `project:releases` (or broader) scope; do not commit it.
**Debug files:** Windows CI uploads Loop PDBs to the `berry-studios` EU project id encoded in `LOOP_SENTRY_DSN` when `SENTRY_AUTH_TOKEN` is set. Without those files, crash stacks stay unsymbolicated. Store the token as a GitHub Actions secret with `project:releases` (or broader) scope; do not commit it.

**Verify (Windows, Sentry-enabled build):**

Expand Down
21 changes: 20 additions & 1 deletion scripts/ci/upload_sentry_debug_files.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,28 @@ if (-not $cli -or -not $cli.assetId -or -not $cli.sha256 -or -not $cli.upstream)
}

$org = if ($env:SENTRY_ORG) { $env:SENTRY_ORG } else { "berry-studios" }
$project = if ($env:SENTRY_PROJECT) { $env:SENTRY_PROJECT } else { "loop-pdf" }
$url = if ($env:SENTRY_URL) { $env:SENTRY_URL } else { "https://de.sentry.io" }

function Resolve-SentryProject([string]$Root) {
if ($env:SENTRY_PROJECT) {
return [string]$env:SENTRY_PROJECT
}
$cmakePath = Join-Path $Root "CMakeLists.txt"
if (-not (Test-Path -LiteralPath $cmakePath)) {
throw "upload_sentry_debug_files.ps1: CMakeLists.txt not found; cannot resolve Sentry project id."
}
$dsnMatch = [regex]::Match(
(Get-Content -LiteralPath $cmakePath -Raw),
'ingest\.de\.sentry\.io/(\d+)'
)
if (-not $dsnMatch.Success) {
throw "upload_sentry_debug_files.ps1: LOOP_SENTRY_DSN in CMakeLists.txt has no ingest project id."
}
return $dsnMatch.Groups[1].Value
}

$project = Resolve-SentryProject $repoRoot

$cliPath = Join-Path $env:RUNNER_TEMP "sentry-cli-Windows-x86_64.exe"
if ([string]::IsNullOrWhiteSpace($env:RUNNER_TEMP)) {
$cliPath = Join-Path ([System.IO.Path]::GetTempPath()) "sentry-cli-Windows-x86_64.exe"
Expand Down
Loading