Files
Christian Visintin 133ec898d8 ci(release): build Linux artifacts as static musl binaries (#447)
Build Linux release artifacts as statically linked musl binaries for x86_64 and aarch64, update packaging and updater handling, and document the reduced runtime requirements.

Keep release version preparation locked without refreshing dependencies or committing Cargo.lock.

Closes #440
2026-09-03 13:31:16 +02:00

40 lines
1021 B
Plaintext

# Build everything
[group('build')]
build_all: build_crates
# Build the Rust crate
[group('build')]
build_crates args="":
cargo build --workspace {{ args }}
# Build all Rust crates in release mode
[group('build')]
build_crates_release:
just build_crates "--release"
# Build a release binary for a target triple
[group('build')]
build_release target features="":
cargo build --locked --release --target {{ target }} {{ features }}
# Build a static musl Linux release binary in a pinned Alpine container
[group('build')]
build_musl target:
dist/release/build_musl.sh {{ target }}
# Package an already-built Linux release as a Debian package
[group('build')]
package_deb target:
cargo deb --no-build --target {{ target }} --features smb-vendored
# Update Cargo.lock; pass cargo update arguments to scope the update.
[group('build')]
update_lock args="":
cargo update {{ args }}
# Clean build artifacts
[group('build')]
[confirm("Are you sure you want to clean the build artifacts?")]
clean:
cargo clean