add debian package building in ci
This uses a separate step and docker image, which I'm not a huge fan of. At least I could get this to work for now, but I won't be shocked when it breaks later. I know, I know, fixing this kind of problem is the exact reason I bothered to do this, but I was really struggling to do better here. Maybe I can take a second pass at this later. Also, this explicitly names the caches, because without this, various things related to linking will break.
This commit is contained in:
parent
4de54db305
commit
0b7ed5adc9
2 changed files with 27 additions and 5 deletions
|
@ -8,17 +8,17 @@ variables:
|
|||
|
||||
before_script:
|
||||
# Enable nix-command and flakes
|
||||
- echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf
|
||||
- if command -v nix > /dev/null; then echo "experimental-features = nix-command flakes" >> /etc/nix/nix.conf; fi
|
||||
|
||||
# Add nix-community binary cache
|
||||
- echo "extra-substituters = https://nix-community.cachix.org" >> /etc/nix/nix.conf
|
||||
- echo "extra-trusted-public-keys = nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" >> /etc/nix/nix.conf
|
||||
- if command -v nix > /dev/null; then echo "extra-substituters = https://nix-community.cachix.org" >> /etc/nix/nix.conf; fi
|
||||
- if command -v nix > /dev/null; then echo "extra-trusted-public-keys = nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" >> /etc/nix/nix.conf; fi
|
||||
|
||||
# Install direnv and nix-direnv
|
||||
- nix-env -iA nixpkgs.direnv nixpkgs.nix-direnv
|
||||
- if command -v nix > /dev/null; then nix-env -iA nixpkgs.direnv nixpkgs.nix-direnv; fi
|
||||
|
||||
# Allow .envrc
|
||||
- direnv allow
|
||||
- if command -v nix > /dev/null; then direnv allow; fi
|
||||
|
||||
# Set CARGO_HOME to a cacheable path
|
||||
- export CARGO_HOME="$(git rev-parse --show-toplevel)/.gitlab-ci.d/cargo"
|
||||
|
@ -29,6 +29,7 @@ ci:
|
|||
script:
|
||||
- direnv exec . engage
|
||||
cache:
|
||||
key: nix
|
||||
paths:
|
||||
- target
|
||||
- .gitlab-ci.d
|
||||
|
@ -44,3 +45,22 @@ docker:
|
|||
artifacts:
|
||||
paths:
|
||||
- docker-image.tar.gz
|
||||
|
||||
debian:
|
||||
stage: artifacts
|
||||
image: rust:1.70.0
|
||||
script:
|
||||
- apt-get update && apt-get install -y --no-install-recommends libclang-dev
|
||||
- cargo install cargo-deb
|
||||
- cargo deb
|
||||
|
||||
# Make the output less difficult to find
|
||||
- mv target/debian/*.deb .
|
||||
artifacts:
|
||||
paths:
|
||||
- "*.deb"
|
||||
cache:
|
||||
key: debian
|
||||
paths:
|
||||
- target
|
||||
- .gitlab-ci.d
|
||||
|
|
|
@ -13,6 +13,8 @@ edition = "2021"
|
|||
# rust-version HASH" in `flake.nix`. If you don't have Nix installed or
|
||||
# otherwise don't know how to do this, ping `@charles:computer.surgery` or
|
||||
# `@dusk:gaze.systems` in the matrix room.
|
||||
#
|
||||
# Also make sure to update the docker image tags in `.gitlab-ci.yml`.
|
||||
rust-version = "1.70.0"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
|
Loading…
Reference in a new issue