aboutsummaryrefslogtreecommitdiff
path: root/shell.nix
diff options
context:
space:
mode:
authorQuentin Dufour <quentin@deuxfleurs.fr>2021-10-04 18:27:57 +0200
committerQuentin Dufour <quentin@deuxfleurs.fr>2021-10-19 16:56:07 +0200
commitdc017a0cab40cb2f33a01b420bb1b04038abb875 (patch)
tree239b6a9245b842a4daaceead93b71d8ddbeab498 /shell.nix
parent1acf7e4c66aab0a0b5bcce8eb2965b35d587dd2a (diff)
downloadgarage-dc017a0cab40cb2f33a01b420bb1b04038abb875.tar.gz
garage-dc017a0cab40cb2f33a01b420bb1b04038abb875.zip
Build Garage with Nixfeature/static
Diffstat (limited to 'shell.nix')
-rw-r--r--shell.nix69
1 files changed, 69 insertions, 0 deletions
diff --git a/shell.nix b/shell.nix
new file mode 100644
index 00000000..f407ed95
--- /dev/null
+++ b/shell.nix
@@ -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 [])
+ ;
+}