ci(nix): add archive packages and overhaul CI workflows
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
{
|
||||
bin,
|
||||
pkgs,
|
||||
archiveName
|
||||
}:
|
||||
pkgs.stdenv.mkDerivation rec {
|
||||
name = "jj-cz-${archiveName}";
|
||||
src = pkgs.lib.cleanSource ../.;
|
||||
nativeBuildInputs = [pkgs.zip];
|
||||
buildPhase = ''
|
||||
mkdir -p $out/dist
|
||||
zip -j $out/dist/${name}.zip ${bin}/bin/jj-cz* ${src}/README.md ${src}/LICENSE.*
|
||||
'';
|
||||
installPhase = "";
|
||||
dontConfigure = true;
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
{
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}: let
|
||||
mkRustBuild = import ./make-binary.nix;
|
||||
mkArchive = import ./make-archive.nix;
|
||||
targets = {
|
||||
linux-x86_64 = {
|
||||
crossPkgs = pkgs;
|
||||
triple = "x86_64-unknown-linux-gnu";
|
||||
exeSuffix = "";
|
||||
};
|
||||
linux-aarch64 = {
|
||||
crossPkgs = pkgs.pkgsCross.aarch64-multiplatform;
|
||||
triple = "aarch64-unknown-linux-gnu";
|
||||
exeSuffix = "";
|
||||
};
|
||||
windows-x86_64 = {
|
||||
crossPkgs = pkgs.pkgsCross.mingwW64;
|
||||
triple = "x86_64-pc-windows-gnu";
|
||||
exeSuffix = ".exe";
|
||||
};
|
||||
windows-aarch64 = {
|
||||
crossPkgs = pkgs.pkgsCross.aarch64-windows;
|
||||
triple = "aarch64-pc-windows-gnu";
|
||||
exeSuffix = ".exe";
|
||||
};
|
||||
macos-x86_64 = {
|
||||
crossPkgs = pkgs.pkgsCross.x86_64-darwin;
|
||||
triple = "x86_64-apple-darwin";
|
||||
exeSuffix = "";
|
||||
};
|
||||
macos-aarch64 = {
|
||||
crossPkgs = pkgs.pkgsCross.aarch64-darwin;
|
||||
triple = "aarch64-apple-darwin";
|
||||
exeSuffix = "";
|
||||
};
|
||||
};
|
||||
bins = {
|
||||
linux-x86_64 = mkRustBuild {
|
||||
inherit pkgs;
|
||||
target = targets.linux-x86_64;
|
||||
};
|
||||
linux-aarch64 = mkRustBuild {
|
||||
inherit pkgs;
|
||||
target = targets.linux-aarch64;
|
||||
};
|
||||
windows-x86_64 = mkRustBuild {
|
||||
inherit pkgs;
|
||||
target = targets.windows-x86_64;
|
||||
};
|
||||
};
|
||||
packages =
|
||||
{
|
||||
linux-x86_64-archive = mkArchive {
|
||||
inherit pkgs;
|
||||
bin = bins.linux-x86_64;
|
||||
archiveName = "x86_64-linux";
|
||||
};
|
||||
linux-aarch64-archive = mkArchive {
|
||||
inherit pkgs;
|
||||
bin = bins.linux-aarch64;
|
||||
archiveName = "aarch64-linux";
|
||||
};
|
||||
windows-x86_64-archive = mkArchive {
|
||||
inherit pkgs;
|
||||
bin = bins.windows-x86_64;
|
||||
archiveName = "x86_64-windows";
|
||||
};
|
||||
}
|
||||
// bins;
|
||||
defaultBySystem = {
|
||||
"x86_64-linux" = packages.linux-x86_64;
|
||||
"aarch64-linux" = packages.linux-aarch64;
|
||||
"x86_64-windows" = packages.windows-x86_64;
|
||||
};
|
||||
in
|
||||
packages
|
||||
// {
|
||||
default = defaultBySystem.${system} or packages.linux-x86_64;
|
||||
}
|
||||
@@ -20,5 +20,8 @@ pkgs.mkShell {
|
||||
git-cliff
|
||||
just
|
||||
typos
|
||||
|
||||
# for CI
|
||||
jq
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user