Skip to content
Snippets Groups Projects
Commit b6d0f9da authored by v-lafeychine's avatar v-lafeychine Committed by loutr
Browse files

feat(nix): Build Dockerfile from flake

Closes #4

Approved-by: default avataraalbert <augustin.albert@bleu-azure.fr>
Approved-by: default avatarloutr <loutr@crans.org>

* Apply 1 suggestion(s) to 1 file(s)

* feat(nix): Build Dockerfile from flake
parent f383e869
No related branches found
No related tags found
1 merge request!42Draft: Resolve "Preparations for the first release"
/target
/result
/target
# Supervisé par:
chatain
......
image: "vlafeychine/rust"
image: vlafeychine/rust
variables:
CARGO_HOME: "$CI_PROJECT_DIR/.cache/cargo/"
cache:
key:
files:
- Cargo.lock
paths:
- .cache/cargo/
format:
script:
......
......@@ -10,32 +10,51 @@
outputs = { self, flake-utils, rust-overlay, nixpkgs }:
flake-utils.lib.eachDefaultSystem (system:
let
rustPackages = pkgs.rust-bin.nightly.latest;
pkgs = import nixpkgs {
inherit system;
overlays = [ (import rust-overlay) ];
};
overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs { inherit overlays system; };
rust = pkgs.rust-bin.nightly.latest;
in rec {
packages.default = pkgs.rustPlatform.buildRustPackage {
pname = "proost";
version = "0.1.0";
packages = {
default = pkgs.rustPlatform.buildRustPackage {
pname = "proost";
version = "0.1.0";
nativeBuildInputs = [ rust.minimal ];
src = ./.;
cargoLock.lockFile = ./Cargo.lock;
meta = with pkgs.lib; {
description = "A simple proof assistant written in Rust";
homepage = "https://gitlab.crans.org/loutr/proost";
license = licenses.gpl3;
};
};
docker-ci = let
rust-ci =
rust.minimal.override { extensions = [ "clippy" "rustfmt" ]; };
in pkgs.dockerTools.buildImage {
name = "proost-ci";
nativeBuildInputs = [ rustPackages.default ];
copyToRoot = pkgs.buildEnv {
name = "proost-dependencies";
paths = with pkgs; [ bash coreutils gcc openssh rust-ci ];
};
src = ./.;
cargoLock.lockFile = ./Cargo.lock;
runAsRoot = "mkdir /tmp";
meta = with pkgs.lib; {
description = "A simple proof assistant written in Rust";
homepage = "https://gitlab.crans.org/loutr/proost";
license = licenses.gpl3;
config = {
Env =
[ "SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt" ];
Entrypoint = [ "${pkgs.bash}/bin/sh" "-c" ];
};
};
};
devShells.default = pkgs.mkShell {
name = "proost-dev";
packages = packages.default.nativeBuildInputs
++ (with rustPackages; [ rustfmt clippy ]);
packages = [ rust.default rust.rust-analyzer ];
};
});
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment