Skip to content
Snippets Groups Projects
Commit de168aa3 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 298778d7
No related branches found
No related tags found
No related merge requests found
/target
/result /result
/target
# Supervisé par: # Supervisé par:
chatain chatain
......
image: "vlafeychine/rust" image: vlafeychine/rust
variables:
CARGO_HOME: "$CI_PROJECT_DIR/.cache/cargo/"
cache:
key:
files:
- Cargo.lock
paths:
- .cache/cargo/
format: format:
script: script:
......
...@@ -10,32 +10,51 @@ ...@@ -10,32 +10,51 @@
outputs = { self, flake-utils, rust-overlay, nixpkgs }: outputs = { self, flake-utils, rust-overlay, nixpkgs }:
flake-utils.lib.eachDefaultSystem (system: flake-utils.lib.eachDefaultSystem (system:
let let
rustPackages = pkgs.rust-bin.nightly.latest; overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs { pkgs = import nixpkgs { inherit overlays system; };
inherit system; rust = pkgs.rust-bin.nightly.latest;
overlays = [ (import rust-overlay) ];
};
in rec { in rec {
packages.default = pkgs.rustPlatform.buildRustPackage { packages = {
pname = "proost"; default = pkgs.rustPlatform.buildRustPackage {
version = "0.1.0"; 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 = ./.; runAsRoot = "mkdir /tmp";
cargoLock.lockFile = ./Cargo.lock;
meta = with pkgs.lib; { config = {
description = "A simple proof assistant written in Rust"; Env =
homepage = "https://gitlab.crans.org/loutr/proost"; [ "SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt" ];
license = licenses.gpl3; Entrypoint = [ "${pkgs.bash}/bin/sh" "-c" ];
};
}; };
}; };
devShells.default = pkgs.mkShell { devShells.default = pkgs.mkShell {
name = "proost-dev"; name = "proost-dev";
packages = packages.default.nativeBuildInputs packages = [ rust.default rust.rust-analyzer ];
++ (with rustPackages; [ rustfmt clippy ]);
}; };
}); });
} }
......
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