ci(windows): Upload Windows debug symbols (#3467)

Closes #3450 

I was able to get stacktraces from a crash generated inside my VM. It
picked out the correct line in gui.rs where the crash was triggered.


![image](https://github.com/firezone/firezone/assets/13400041/1fc521a1-059c-489b-b9b8-506570a4df0f)


![image](https://github.com/firezone/firezone/assets/13400041/17e4bdd9-cd2a-477a-821a-ab23e61eadf7)
This commit is contained in:
Reactor Scram
2024-01-31 19:36:10 -06:00
committed by GitHub
parent e2efd725e3
commit e35dd53649
3 changed files with 20 additions and 0 deletions

View File

@@ -101,9 +101,11 @@ jobs:
# In release mode the name comes from tauri.conf.json
cp "../target/release/Firezone.exe" "${{ env.BINARY_DEST_PATH }}-x64.exe"
cp "../target/release/bundle/msi/*.msi" "${{ env.BINARY_DEST_PATH }}-x64.msi"
cp "../target/release/firezone_windows_client.pdb" "${{ env.BINARY_DEST_PATH }}-x64.pdb"
Get-FileHash ${{ env.BINARY_DEST_PATH }}-x64.exe -Algorithm SHA256 | Select-Object Hash > ${{ env.BINARY_DEST_PATH }}-x64.exe.sha256sum.txt
Get-FileHash ${{ env.BINARY_DEST_PATH }}-x64.msi -Algorithm SHA256 | Select-Object Hash > ${{ env.BINARY_DEST_PATH }}-x64.msi.sha256sum.txt
Get-FileHash ${{ env.BINARY_DEST_PATH }}-x64.pdb -Algorithm SHA256 | Select-Object Hash > ${{ env.BINARY_DEST_PATH }}-x64.pdb.sha256sum.txt
# This might catch regressions in #3384, depending how CI runners
# handle exit codes
@@ -122,6 +124,13 @@ jobs:
path: |
${{ github.workspace }}/rust/windows-client/windows-client-x64.msi
${{ github.workspace }}/rust/windows-client/windows-client-x64.msi.sha256sum.txt
- name: Save Windows debug symbols
uses: actions/upload-artifact@v4
with:
name: windows-client-x64-pdb
path: |
${{ github.workspace }}/rust/windows-client/windows-client-x64.pdb
${{ github.workspace }}/rust/windows-client/windows-client-x64.pdb.sha256sum.txt
smoke-test-relay:
runs-on: ubuntu-22.04

View File

@@ -262,6 +262,8 @@ jobs:
- uses: ./.github/actions/setup-node
- name: Build release binaries
run: |
# Build Windows Tauri GUI
pnpm install
pnpm build

View File

@@ -3,6 +3,15 @@
//! Mostly copied from <https://github.com/EmbarkStudios/crash-handling/blob/main/minidumper/examples/diskwrite.rs>
//!
//! TODO: Capture crash dumps on panic.
//!
//! To get human-usable stack traces out of a dump, do this:
//! (Copied from <https://github.com/firezone/firezone/issues/3111#issuecomment-1887975171>)
//!
//! - Get the pdb corresponding to the client exe
//! - `cargo install dump_syms`
//! - Use dump_syms to convert the pdb to a syms file
//! - Compile `minidump-stackwalk` with PR 891 merged
//! - `minidump-stackwalker --symbols-path firezone.syms crash.dmp`
use crate::client::settings::app_local_data_dir;
use anyhow::{anyhow, bail, Context, Result};