mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
- Split up CI artifacts into "exe", "pkg", and "syms" so it's easy to check they're being uploaded. This shouldn't affect published artifacts - Set `strip = "none"` which seems to be necessary to get the debug symbols in Linux, although they still end up in the exe and not the dwp file 🤔 don't know why - Test Linux stacktrace in CI Stacktrace examples: - On Linux we at least get function names, but we aren't getting line numbers for some reason https://github.com/firezone/firezone/actions/runs/8350493514/job/22857032124#step:10:268 - On Windows we also get line numbers, as before https://github.com/firezone/firezone/actions/runs/8350493514/job/22857033367#step:11:351 I didn't test downloading the files and doing a stacktrace locally, but I have batched that up for whenever I do a big manual test of the CD-produced release artifacts: https://github.com/firezone/firezone/issues/3887
Firezone shell scripts
This directory contains various shell scripts used for development, testing, and deployment of the Firezone product.
Developer Setup
We lint shell scripts in CI. To get your PR to pass, you'll want to ensure your local development environment is set up to lint shell scripts:
- Install
shfmt:brew install shfmton macOS- Install shfmt from https://github.com/mvdan/sh/releases for other platforms
- Install
shellcheck:brew install shellcheckon macOSsudo apt-get install shellcheckon Ubuntu
Then just lint and format your shell scripts before you commit:
shfmt -i 4 **/*.sh
shellcheck --severity=warning **/*.sh
You can achieve this more easily by using pre-commit. See
CONTRIBUTING.
Editor setup
- Vim (here's an example using ALE)
- VSCode
Scripting tips
- Use
#!/usr/bin/env bashalong withset -euo pipefailin general for dev and test scripts. - In Docker images and other minimal envs, stick to
#!/bin/shand simplyset -eu.