mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
Our caches in GitHub actions are hopelessly overflowing, plus for the Kotlin and Swift jobs, we don't seem to be doing a particularly good job at caching the build outputs because those jobs take forever. Instead of using GitHub actions, this PR configures `sccache` for all Rust compilation commands and uses a GCP bucket to store the artifacts. This speeds up some of the builds a fair bit. Android now finishes in ~6minutes. Apart from the self-hosted MacOS 14 runner, the Swift jobs are slow but still a lot faster than what we currently have. Windows seems to be quite slow at compiling / fetching artefacts which is negatively impacted by this change because they now have to be fetched from the bucket. Overall, I think this is a net-positive though and should be much easier to maintain going forward. --------- Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
Connlib
Firezone's connectivity library shared by all clients.
🚧 Disclaimer 🚧
NOTE: This repository is undergoing heavy construction. You could say we're Building In The Open™ in true open source spirit. Do not attempt to use anything released here until this notice is removed. You have been warned.
Building Connlib
Setting the CONNLIB_MOCK environment variable when packaging for Apple or Android will activate the mock feature flag, replacing connlib's normal connection logic with a mock for testing purposes.
- You'll need a Rust toolchain installed if you don't have one already. We recommend following the instructions at https://rustup.rs.
rustup showwill install all needed targets since they are added torust-toolchain.toml.- Follow the relevant instructions for your platform:
- Apple
- Android
- Linux
- Windows
Apple
Connlib should build successfully with recent macOS and Xcode versions assuming you have Rust installed. If not, open a PR with the notes you found.