From 9365b8054af4416178899b4a7c57bdcc0f1c13f3 Mon Sep 17 00:00:00 2001 From: poka <poka@p2p.legal> Date: Tue, 21 May 2024 23:33:56 +0200 Subject: [PATCH] build debian package in CI --- .gitlab-ci.yml | 33 +++++++++++++++++++++------------ Cargo.lock | 2 +- Cargo.toml | 2 +- 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6bc6014..f3d33e6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,28 +4,32 @@ image: "rust:latest" stages: - - build + - build_and_package - release -build: - stage: build - # image used for this build - image: rust - # build script +build_and_package: + stage: build_and_package + image: rust:slim-buster script: + # Build the project - cargo build --release - # output file + # Install cargo-deb + - cargo install cargo-deb + # Create Debian package + - cargo deb --no-build + - ls target/debian/*.deb | head -n 1 > debian_package.txt artifacts: paths: - target/release/gcli - # use cache to avoid re-downloading and re-building all dependencies + - target/debian/*.deb + - debian_package.txt cache: key: files: - Cargo.lock paths: - target/release - # only build gcli when adding a tag + - target/debian only: - tags @@ -48,11 +52,16 @@ release: # Attach the artifact to the release assets: links: - - name: "gcli v$CI_COMMIT_TAG for Linux" - url: "$CI_PROJECT_URL/-/jobs/artifacts/$CI_COMMIT_TAG/raw/target/release/gcli?job=build" + - name: "gcli v$CI_COMMIT_TAG for Linux (binary)" + url: "$CI_PROJECT_URL/-/jobs/artifacts/$CI_COMMIT_TAG/raw/target/release/gcli?job=build_and_package" + - name: "gcli v$CI_COMMIT_TAG Debian Package" + url: "$CI_PROJECT_URL/-/jobs/artifacts/$CI_COMMIT_TAG/raw/$(cat debian_package.txt)?job=build_and_package" # Trigger release creation only for tagged commits only: - tags # Not necessary but clearly shows the dependency dependencies: - - build + - build_and_package + artifacts: + paths: + - debian_package.txt diff --git a/Cargo.lock b/Cargo.lock index 662b001..444763b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2092,7 +2092,7 @@ dependencies = [ [[package]] name = "gcli" -version = "0.2.10" +version = "0.2.11" dependencies = [ "age", "anyhow", diff --git a/Cargo.toml b/Cargo.toml index 980fbbf..af0852c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ rust-version = "1.75.0" license = "AGPL-3.0-only" name = "gcli" repository = "https://git.duniter.org/clients/rust/gcli-v2s" -version = "0.2.10" +version = "0.2.11" [dependencies] # subxt is main dependency -- GitLab