diff --git a/CHANGELOG.md b/CHANGELOG.md index aaec0f2..8e1ad49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased](https://git.rustybever.be/Chewing_Bever/alex/src/branch/dev) +### Added + +* Debian packages are now available in the [package registry](https://git.rustybever.be/Chewing_Bever/alex/packages) + ## [0.5.0](https://git.rustybever.be/Chewing_Bever/alex/src/tag/0.5.0) ### Added diff --git a/Cargo.toml b/Cargo.toml index 66f7b00..f834642 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,7 @@ members = [ version = "0.5.0" authors = ["Jef Roosens"] edition = "2021" +license-file = "LICENSE" [workspace.dependencies] chrono = { version = "0.4.26", features = ["serde"] } diff --git a/Justfile b/Justfile index 75af725..54180ad 100644 --- a/Justfile +++ b/Justfile @@ -1,20 +1,25 @@ +# Build the local development build [group('build')] build: cargo build --frozen --workspace alias b := build +# Build release binaries for the supported architectures [group('build')] -build-release target: +build-release: cargo build \ --release \ --frozen \ --workspace \ - --target '{{ target }}' + --target x86_64-unknown-linux-musl \ + --target aarch64-unknown-linux-musl +# Run all tests in the workspace test: cargo test --frozen --workspace alias t := test +# Run cargofmt and clippy check: cargo fmt --check --all cargo clippy \ @@ -23,6 +28,7 @@ check: --no-deps \ --deny 'clippy::all' alias c := check +alias lint := check fetch: cargo fetch --locked @@ -43,19 +49,33 @@ run: --java '/usr/lib/jvm/java-21-openjdk/bin/java' \ --layers '2min,2,4,4;3min,3,2,2' +# Package the static release binaries as a Debian package +[group('package')] +package-deb: build-release + cargo deb \ + --package alex \ + --frozen \ + --no-build \ + --target x86_64-unknown-linux-musl \ + --target aarch64-unknown-linux-musl + # Publish the binaries and packages for a new release -publish-release tag: (build-release 'x86_64-unknown-linux-musl') (build-release 'aarch64-unknown-linux-musl') +[group('package')] +publish-release tag: build-release package-deb # Check the binaries are proper static binaries [ "$(readelf -d target/x86_64-unknown-linux-musl/release/alex | grep NEEDED | wc -l)" = 0 ] [ "$(readelf -d target/aarch64-unknown-linux-musl/release/alex | grep NEEDED | wc -l)" = 0 ] curl \ - --netrc \ - --fail \ - --upload-file target/x86_64-unknown-linux-musl/release/alex \ - https://git.rustybever.be/api/packages/Chewing_Bever/generic/alex/"{{ tag }}"/alex-linux-amd64 - curl \ - --netrc \ - --fail \ - --upload-file target/aarch64-unknown-linux-musl/release/alex \ - https://git.rustybever.be/api/packages/Chewing_Bever/generic/alex/"{{ tag }}"/alex-linux-arm64 + --parallel --fail-early \ + --netrc --upload-file target/x86_64-unknown-linux-musl/release/alex \ + https://git.rustybever.be/api/packages/Chewing_Bever/generic/alex/"{{ tag }}"/alex-linux-amd64 \ + --next \ + --netrc --upload-file target/aarch64-unknown-linux-musl/release/alex \ + https://git.rustybever.be/api/packages/Chewing_Bever/generic/alex/"{{ tag }}"/alex-linux-arm64 \ + --next \ + --netrc --upload-file target/debian/alex_{{ tag }}-1_amd64.deb \ + https://git.rustybever.be/api/packages/Chewing_Bever/debian/pool/any/main/upload \ + --next \ + --netrc --upload-file target/debian/alex_{{ tag }}-1_arm64.deb \ + https://git.rustybever.be/api/packages/Chewing_Bever/debian/pool/any/main/upload > /dev/null diff --git a/alex/Cargo.toml b/alex/Cargo.toml index 71c1c93..ff5df75 100644 --- a/alex/Cargo.toml +++ b/alex/Cargo.toml @@ -3,6 +3,8 @@ name = "alex" description = "Wrapper around Minecraft server processes, designed to complement Docker image installations." version.workspace = true edition.workspace = true +authors.workspace = true +license-file.workspace = true [dependencies] backup = { path = "../backup" }