diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index cbbfe431..c8d54b37 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -13,6 +13,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + filter: blob:none - name: Create env file run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 02026b85..0941bfe5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,6 +14,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + filter: blob:none - name: Create env file run: | diff --git a/Cargo.lock b/Cargo.lock index a7b11943..44d93d37 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -133,6 +133,38 @@ version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +[[package]] +name = "camino" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.12", +] + [[package]] name = "cc" version = "1.2.17" @@ -268,6 +300,37 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "derive_builder" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" +dependencies = [ + "derive_builder_core", + "syn 2.0.100", +] + [[package]] name = "displaydoc" version = "0.2.5" @@ -885,6 +948,7 @@ dependencies = [ "serde_rusqlite", "serde_with", "uuid", + "vergen-gitcl", "zip", ] @@ -927,6 +991,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + [[package]] name = "object" version = "0.36.7" @@ -1172,6 +1245,15 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +dependencies = [ + "serde", +] + [[package]] name = "sentry" version = "0.37.0" @@ -1254,7 +1336,7 @@ dependencies = [ "rand 0.8.5", "serde", "serde_json", - "thiserror", + "thiserror 1.0.69", "time", "url", "uuid", @@ -1410,7 +1492,16 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", ] [[package]] @@ -1424,6 +1515,17 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "time" version = "0.3.41" @@ -1432,7 +1534,9 @@ checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa", + "libc", "num-conv", + "num_threads", "powerfmt", "serde", "time-core", @@ -1547,6 +1651,46 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "vergen" +version = "9.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b2bf58be11fc9414104c6d3a2e464163db5ef74b12296bda593cac37b6e4777" +dependencies = [ + "anyhow", + "cargo_metadata", + "derive_builder", + "regex", + "rustversion", + "time", + "vergen-lib", +] + +[[package]] +name = "vergen-gitcl" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9dfc1de6eb2e08a4ddf152f1b179529638bedc0ea95e6d667c014506377aefe" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", + "time", + "vergen", + "vergen-lib", +] + +[[package]] +name = "vergen-lib" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", +] + [[package]] name = "version_check" version = "0.9.5" diff --git a/Dockerfile b/Dockerfile index b31add5b..2e5578fe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM rust:1.84.1 # Install needed packages and clean up RUN apt update && \ - apt install -y --no-install-recommends lsb-release wget software-properties-common gnupg gcc-multilib && \ + apt install -y --no-install-recommends lsb-release wget software-properties-common gnupg gcc-multilib git && \ rm -rf /var/lib/apt/lists/* # Install clang and clean up @@ -25,3 +25,6 @@ ARG CACHEBUST # Install MSFS2020 and MSFS2024 SDK RUN cargo-msfs install msfs2020 && \ cargo-msfs install msfs2024 + +# Needed when running in CI/CD to avoid dubious ownership errors +RUN git config --global --add safe.directory /workspace \ No newline at end of file diff --git a/src/wasm/Cargo.toml b/src/wasm/Cargo.toml index 3117f751..fc3b89c3 100644 --- a/src/wasm/Cargo.toml +++ b/src/wasm/Cargo.toml @@ -26,3 +26,6 @@ serde_rusqlite = "0.36.0" serde_with = "3.12.0" uuid = { version = "1.16.0", features = ["rng-rand", "v4"] } zip = { version = "2.5.0", default-features = false, features = ["deflate"] } + +[build-dependencies] +vergen-gitcl = { version = "1.0.8", features = ["build", "cargo"] } diff --git a/src/wasm/build.rs b/src/wasm/build.rs new file mode 100644 index 00000000..9ff08cf0 --- /dev/null +++ b/src/wasm/build.rs @@ -0,0 +1,15 @@ +use vergen_gitcl::{BuildBuilder, CargoBuilder, Emitter, GitclBuilder}; + +fn main() -> Result<(), Box> { + let build = BuildBuilder::all_build()?; + let cargo = CargoBuilder::all_cargo()?; + let gitcl = GitclBuilder::all_git()?; + + Emitter::default() + .add_instructions(&build)? + .add_instructions(&cargo)? + .add_instructions(&gitcl)? + .emit()?; + + Ok(()) +} diff --git a/src/wasm/src/sentry_gauge.rs b/src/wasm/src/sentry_gauge.rs index 355c83a9..ee197d77 100644 --- a/src/wasm/src/sentry_gauge.rs +++ b/src/wasm/src/sentry_gauge.rs @@ -260,6 +260,12 @@ where ..Default::default() })); + // Build specific settings + scope.set_tag("git_sha", env!("VERGEN_GIT_SHA")); + scope.set_tag("git_dirty", env!("VERGEN_GIT_DIRTY")); + scope.set_tag("built_at", env!("VERGEN_BUILD_TIMESTAMP")); + + // Addon specific settings let config = Config::get_config(); scope.set_tag( "developer",