Upload debug info to sentry.io in nightly builds (#35089)
This is a preparatory change which will allow us to use sentry for crash reporting once we start uploading minidumps. Release Notes: - N/A
This commit is contained in:
parent
eef15abbe4
commit
a57e4dc8a8
4 changed files with 72 additions and 2 deletions
20
.github/workflows/release_nightly.yml
vendored
20
.github/workflows/release_nightly.yml
vendored
|
@ -111,6 +111,11 @@ jobs:
|
|||
echo "Publishing version: ${version} on release channel nightly"
|
||||
echo "nightly" > crates/zed/RELEASE_CHANNEL
|
||||
|
||||
- name: Setup Sentry CLI
|
||||
uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b #v2
|
||||
with:
|
||||
token: ${{ SECRETS.SENTRY_AUTH_TOKEN }}
|
||||
|
||||
- name: Create macOS app bundle
|
||||
run: script/bundle-mac
|
||||
|
||||
|
@ -136,6 +141,11 @@ jobs:
|
|||
- name: Install Linux dependencies
|
||||
run: ./script/linux && ./script/install-mold 2.34.0
|
||||
|
||||
- name: Setup Sentry CLI
|
||||
uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b #v2
|
||||
with:
|
||||
token: ${{ SECRETS.SENTRY_AUTH_TOKEN }}
|
||||
|
||||
- name: Limit target directory size
|
||||
run: script/clear-target-dir-if-larger-than 100
|
||||
|
||||
|
@ -168,6 +178,11 @@ jobs:
|
|||
- name: Install Linux dependencies
|
||||
run: ./script/linux
|
||||
|
||||
- name: Setup Sentry CLI
|
||||
uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b #v2
|
||||
with:
|
||||
token: ${{ SECRETS.SENTRY_AUTH_TOKEN }}
|
||||
|
||||
- name: Limit target directory size
|
||||
run: script/clear-target-dir-if-larger-than 100
|
||||
|
||||
|
@ -262,6 +277,11 @@ jobs:
|
|||
Write-Host "Publishing version: $version on release channel nightly"
|
||||
"nightly" | Set-Content -Path "crates/zed/RELEASE_CHANNEL"
|
||||
|
||||
- name: Setup Sentry CLI
|
||||
uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b #v2
|
||||
with:
|
||||
token: ${{ SECRETS.SENTRY_AUTH_TOKEN }}
|
||||
|
||||
- name: Build Zed installer
|
||||
working-directory: ${{ env.ZED_WORKSPACE }}
|
||||
run: script/bundle-windows.ps1
|
||||
|
|
|
@ -83,6 +83,23 @@ if [[ "$remote_server_triple" == "$musl_triple" ]]; then
|
|||
fi
|
||||
cargo build --release --target "${remote_server_triple}" --package remote_server
|
||||
|
||||
# Upload debug info to sentry.io
|
||||
if ! command -v sentry-cli >/dev/null 2>&1; then
|
||||
echo "sentry-cli not found. skipping sentry upload."
|
||||
echo "install with: 'curl -sL https://sentry.io/get-cli | bash'"
|
||||
else
|
||||
if [[ -n "${SENTRY_AUTH_TOKEN:-}" ]]; then
|
||||
echo "Uploading zed debug symbols to sentry..."
|
||||
# note: this uploads the unstripped binary which is needed because it contains
|
||||
# .eh_frame data for stack unwinindg. see https://github.com/getsentry/symbolic/issues/783
|
||||
sentry-cli debug-files upload --include-sources --wait -p zed -o zed-dev \
|
||||
"${target_dir}/${target_triple}"/release/zed \
|
||||
"${target_dir}/${remote_server_triple}"/release/remote_server
|
||||
else
|
||||
echo "missing SENTRY_AUTH_TOKEN. skipping sentry upload."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Strip debug symbols and save them for upload to DigitalOcean
|
||||
objcopy --only-keep-debug "${target_dir}/${target_triple}/release/zed" "${target_dir}/${target_triple}/release/zed.dbg"
|
||||
objcopy --only-keep-debug "${target_dir}/${remote_server_triple}/release/remote_server" "${target_dir}/${remote_server_triple}/release/remote_server.dbg"
|
||||
|
|
|
@ -366,3 +366,20 @@ else
|
|||
gzip -f --stdout --best target/x86_64-apple-darwin/release/remote_server > target/zed-remote-server-macos-x86_64.gz
|
||||
gzip -f --stdout --best target/aarch64-apple-darwin/release/remote_server > target/zed-remote-server-macos-aarch64.gz
|
||||
fi
|
||||
|
||||
# Upload debug info to sentry.io
|
||||
if ! command -v sentry-cli >/dev/null 2>&1; then
|
||||
echo "sentry-cli not found. skipping sentry upload."
|
||||
echo "install with: 'curl -sL https://sentry.io/get-cli | bash'"
|
||||
else
|
||||
if [[ -n "${SENTRY_AUTH_TOKEN:-}" ]]; then
|
||||
echo "Uploading zed debug symbols to sentry..."
|
||||
# note: this uploads the unstripped binary which is needed because it contains
|
||||
# .eh_frame data for stack unwinindg. see https://github.com/getsentry/symbolic/issues/783
|
||||
sentry-cli debug-files upload --include-sources --wait -p zed -o zed-dev \
|
||||
"target/x86_64-apple-darwin/${target_dir}/" \
|
||||
"target/aarch64-apple-darwin/${target_dir}/"
|
||||
else
|
||||
echo "missing SENTRY_AUTH_TOKEN. skipping sentry upload."
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -96,6 +96,21 @@ function ZipZedAndItsFriendsDebug {
|
|||
Compress-Archive -Path $items -DestinationPath ".\target\release\zed-$env:RELEASE_VERSION-$env:ZED_RELEASE_CHANNEL.dbg.zip" -Force
|
||||
}
|
||||
|
||||
|
||||
function UploadToSentry {
|
||||
if (-not (Get-Command "sentry-cli" -ErrorAction SilentlyContinue)) {
|
||||
Write-Output "sentry-cli not found. skipping sentry upload."
|
||||
Write-Output "install with: 'winget install -e --id=Sentry.sentry-cli'"
|
||||
return
|
||||
}
|
||||
if (-not (Test-Path "env:SENTRY_AUTH_TOKEN")) {
|
||||
Write-Output "missing SENTRY_AUTH_TOKEN. skipping sentry upload."
|
||||
return
|
||||
}
|
||||
Write-Output "Uploading zed debug symbols to sentry..."
|
||||
sentry-cli debug-files upload --include-sources --wait -p zed -o zed-dev .\target\release\
|
||||
}
|
||||
|
||||
function MakeAppx {
|
||||
switch ($channel) {
|
||||
"stable" {
|
||||
|
@ -242,6 +257,8 @@ function BuildInstaller {
|
|||
|
||||
ParseZedWorkspace
|
||||
$innoDir = "$env:ZED_WORKSPACE\inno"
|
||||
$debugArchive = ".\target\release\zed-$env:RELEASE_VERSION-$env:ZED_RELEASE_CHANNEL.dbg.zip"
|
||||
$debugStoreKey = "$env:ZED_RELEASE_CHANNEL/zed-$env:RELEASE_VERSION-$env:ZED_RELEASE_CHANNEL.dbg.zip"
|
||||
|
||||
CheckEnvironmentVariables
|
||||
PrepareForBundle
|
||||
|
@ -253,9 +270,8 @@ ZipZedAndItsFriendsDebug
|
|||
CollectFiles
|
||||
BuildInstaller
|
||||
|
||||
$debugArchive = ".\target\release\zed-$env:RELEASE_VERSION-$env:ZED_RELEASE_CHANNEL.dbg.zip"
|
||||
$debugStoreKey = "$env:ZED_RELEASE_CHANNEL/zed-$env:RELEASE_VERSION-$env:ZED_RELEASE_CHANNEL.dbg.zip"
|
||||
UploadToBlobStorePublic -BucketName "zed-debug-symbols" -FileToUpload $debugArchive -BlobStoreKey $debugStoreKey
|
||||
UploadToSentry
|
||||
|
||||
if ($buildSuccess) {
|
||||
Write-Output "Build successful"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue