mirror of
https://github.com/deuxfleurs-org/garage.git
synced 2026-08-12 15:26:52 +00:00
Build Garage with Nix
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
{
|
||||
system ? builtins.currentSystem,
|
||||
crossSystem ? null,
|
||||
rust ? true,
|
||||
integration ? true,
|
||||
release ? true,
|
||||
}:
|
||||
|
||||
with import ./nix/common.nix;
|
||||
|
||||
let
|
||||
pkgs = import pkgsSrc {
|
||||
inherit system crossSystem;
|
||||
overlays = [ cargo2nixOverlay rustOverlay ];
|
||||
};
|
||||
rustDist = pkgs.buildPackages.rust-bin.stable.latest.default;
|
||||
kaniko = (import ./nix/kaniko.nix) pkgs;
|
||||
|
||||
in
|
||||
|
||||
pkgs.mkShell {
|
||||
shellHook = ''
|
||||
function to_s3 {
|
||||
aws \
|
||||
--endpoint-url https://garage.deuxfleurs.fr \
|
||||
--region garage \
|
||||
s3 cp \
|
||||
./result/bin/garage \
|
||||
s3://garagehq.deuxfleurs.fr/_releases/''${DRONE_TAG:-$DRONE_COMMIT}/''${TARGET}/garage
|
||||
}
|
||||
|
||||
function to_docker {
|
||||
executor \
|
||||
--force \
|
||||
--customPlatform="''${DOCKER_PLATFORM}" \
|
||||
--destination "''${CONTAINER_NAME}:''${CONTAINER_TAG}" \
|
||||
--context dir://`pwd` \
|
||||
--verbosity=debug
|
||||
}
|
||||
|
||||
function refresh_index {
|
||||
aws \
|
||||
--endpoint-url https://garage.deuxfleurs.fr \
|
||||
--region garage \
|
||||
s3 ls \
|
||||
--recursive \
|
||||
s3://garagehq.deuxfleurs.fr/_releases/ \
|
||||
> aws-list.txt
|
||||
|
||||
nix-build nix/build_index.nix
|
||||
|
||||
aws \
|
||||
--endpoint-url https://garage.deuxfleurs.fr \
|
||||
--region garage \
|
||||
s3 cp \
|
||||
--content-type "text/html" \
|
||||
result \
|
||||
s3://garagehq.deuxfleurs.fr/_releases.html
|
||||
}
|
||||
'';
|
||||
|
||||
nativeBuildInputs =
|
||||
(if rust then [ rustDist (pkgs.callPackage cargo2nix {}).package ] else [])
|
||||
++
|
||||
(if integration then [ pkgs.s3cmd pkgs.awscli2 pkgs.minio-client pkgs.rclone pkgs.socat pkgs.psmisc pkgs.which ] else [])
|
||||
++
|
||||
(if release then [ pkgs.awscli2 kaniko ] else [])
|
||||
;
|
||||
}
|
||||
Reference in New Issue
Block a user