This repo contains an example GitHub Action that builds a Windows C++ application and uses symbol-upload to publish symbols to BugSplat. You can either use this template repo, or follow the steps below to configure an existing application.
- Create a new BugSplat database
- Generate an OAuth2 Client ID and Client Secret pair on the Integrations page
- Create a repository secret in your GitHub repo with the key
BUGSPLAT_DATABASE
and your BugSplat database name as the value - Create repository secrets for
SYMBOL_UPLOAD_CLIENT_ID
andSYMBOL_UPLOAD_CLIENT_SECRET
- Configure BugSplat according to the docs for your specific platform.
- If you're using preprocessor definitions to supply a value for
BUGSPLAT_DATABASE
, be sure to configure your project file as seen here. - Create a GitHub Action that builds your project an uploads symbols. Here's a copy of the action used by this repo
name: Build myConsoleCrasher Project
on: [push]
jobs:
build:
name: Build myConsoleCrasher
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup MSBuild path
uses: microsoft/[email protected]
- name: Build myConsoleCrasher project
env:
BUGSPLAT_DATABASE: ${{ secrets.BUGSPLAT_DATABASE }}
run: msbuild .\Samples\myConsoleCrasher\myConsoleCrasher.vcxproj /p:configuration=release /p:DefineConstants=BUGSPLAT_DATABASE=%BUGSPLAT_DATABASE%
- name: Symbols 📦
uses: BugSplat-Git/symbol-upload@main
with:
clientId: "${{ secrets.SYMBOL_UPLOAD_CLIENT_ID }}"
clientSecret: "${{ secrets.SYMBOL_UPLOAD_CLIENT_SECRET }}"
database: "${{ secrets.BUGSPLAT_DATABASE }}"
application: "MyConsoleCrasher"
version: "1.0.0"
files: "*.{pdb,exe,dll}"
directory: "BugSplat\\Win32\\release"
node-version: "20"
- Trigger a build and navigate to BugSplat's Versions page to verify symbols were uploaded.
- Run your application and generate a crash report to test your BugSplat integration.
![image](https://private-user-images.githubusercontent.com/2646053/332438591-92c052d0-574a-4556-8cf7-1bc1b228a2f3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxOTI1OTEsIm5iZiI6MTcyMDE5MjI5MSwicGF0aCI6Ii8yNjQ2MDUzLzMzMjQzODU5MS05MmMwNTJkMC01NzRhLTQ1NTYtOGNmNy0xYmMxYjIyOGEyZjMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcwNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MDVUMTUxMTMxWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MjM4MzMzYTEyZTBmZDZkOWNlMDVlYTcwZmRhZDdlODBjYTBlYTM4Yjg0ODdjN2I4MzBkN2ZiMGQwZTUyYzZmYiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.2sXPus7SmhbwWmx3vl4wGoDd-xveiiAWIodHhMDSzIo)
If you have any additional questions, please email our support team, join us on Discord, or reach out via the chat in our web application.