mirror of
https://codeberg.org/icewind/haze.git
synced 2026-06-03 09:04:12 +02:00
nix ci
This commit is contained in:
parent
d4ac27389e
commit
2f4766ad8a
6 changed files with 231 additions and 117 deletions
74
flake.nix
74
flake.nix
|
|
@ -1,27 +1,79 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-23.05";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
naersk.url = "github:nix-community/naersk";
|
||||
naersk.inputs.nixpkgs.follows = "nixpkgs";
|
||||
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||
rust-overlay.inputs.nixpkgs.follows = "nixpkgs";
|
||||
rust-overlay.inputs.flake-utils.follows = "flake-utils";
|
||||
cross-naersk.url = "github:icewind1991/cross-naersk";
|
||||
cross-naersk.inputs.nixpkgs.follows = "nixpkgs";
|
||||
cross-naersk.inputs.naersk.follows = "naersk";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, flake-utils, naersk }:
|
||||
outputs = { self, nixpkgs, flake-utils, naersk, rust-overlay, cross-naersk }:
|
||||
flake-utils.lib.eachDefaultSystem (
|
||||
system: let
|
||||
pkgs = nixpkgs.legacyPackages."${system}";
|
||||
naersk-lib = naersk.lib."${system}";
|
||||
overlays = [ (import rust-overlay) ];
|
||||
pkgs = import nixpkgs {
|
||||
inherit system overlays;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
lib = pkgs.lib;
|
||||
|
||||
hostTarget = pkgs.hostPlatform.config;
|
||||
targets = [
|
||||
hostTarget
|
||||
"x86_64-unknown-linux-musl"
|
||||
];
|
||||
releaseTargets = lib.lists.remove hostTarget targets;
|
||||
|
||||
execSufficForTarget = target: if lib.strings.hasInfix "windows" target then ".exe" else "";
|
||||
artifactForTarget = target: "palantir${execSufficForTarget target}";
|
||||
assetNameForTarget = target: "palantir-${builtins.replaceStrings ["-unknown" "-gnu" "-musl" "abihf" "-pc"] ["" "" "" "" ""] target}${execSufficForTarget target}";
|
||||
|
||||
toolchain = (pkgs.rust-bin.stable.latest.default.override { inherit targets; });
|
||||
cross-naersk' = pkgs.callPackage cross-naersk {inherit naersk;};
|
||||
|
||||
src = lib.sources.sourceByRegex (lib.cleanSource ./.) ["Cargo.*" "(src)(/.*)?"];
|
||||
|
||||
nearskOpt = {
|
||||
pname = "haze";
|
||||
root = src;
|
||||
};
|
||||
buildTarget = target: (cross-naersk' target).buildPackage nearskOpt;
|
||||
hostNaersk = (cross-naersk' hostTarget);
|
||||
in
|
||||
rec {
|
||||
# `nix build`
|
||||
packages.haze = naersk-lib.buildPackage {
|
||||
pname = "haze";
|
||||
root = ./.;
|
||||
packages = lib.attrsets.genAttrs targets buildTarget // rec {
|
||||
haze = packages.${hostTarget};
|
||||
check = hostNaersk.buildPackage (nearskOpt // {
|
||||
mode = "check";
|
||||
});
|
||||
test = hostNaersk.buildPackage (nearskOpt // {
|
||||
mode = "test";
|
||||
});
|
||||
clippy = hostNaersk.buildPackage (nearskOpt // {
|
||||
mode = "clippy";
|
||||
});
|
||||
default = haze;
|
||||
};
|
||||
defaultPackage = packages.haze;
|
||||
defaultApp = packages.haze;
|
||||
|
||||
# `nix develop`
|
||||
devShell = pkgs.mkShell {
|
||||
nativeBuildInputs = with pkgs; [ rustc cargo bacon cargo-edit cargo-outdated clippy ];
|
||||
inherit targets;
|
||||
releaseMatrix = {
|
||||
include = builtins.map (target: {
|
||||
inherit target;
|
||||
artifact_name = artifactForTarget target;
|
||||
asset_name = assetNameForTarget target;
|
||||
}) releaseTargets;
|
||||
};
|
||||
|
||||
devShells = {
|
||||
default = pkgs.mkShell {
|
||||
nativeBuildInputs = with pkgs; [ rustc cargo bacon cargo-edit cargo-outdated clippy ];
|
||||
};
|
||||
};
|
||||
}
|
||||
) // {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue