chore: added Debian packaging using cargo-deb
This commit is contained in:
parent
f0d5522661
commit
e1bf2cb467
4 changed files with 39 additions and 12 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"] }
|
||||
|
|
|
|||
44
Justfile
44
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
|
||||
|
|
|
|||
|
|
@ -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" }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue