From 8b6a44a53d0b5b5f61dd597ae8d698a873868305 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Thu, 8 Feb 2024 15:41:52 +0100 Subject: [woodpecker] convert drone pipelines to woodpecker --- shell.nix | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'shell.nix') diff --git a/shell.nix b/shell.nix index 991417b5..6d6cc68f 100644 --- a/shell.nix +++ b/shell.nix @@ -95,6 +95,15 @@ in { s3://garagehq.deuxfleurs.fr/_releases/''${DRONE_TAG:-$DRONE_COMMIT}/''${TARGET}/garage } + function to_s3_woodpecker { + aws \ + --endpoint-url https://garage.deuxfleurs.fr \ + --region garage \ + s3 cp \ + ./result-bin/bin/garage \ + s3://garagehq.deuxfleurs.fr/_releases/''${CI_COMMIT_TAG:-$CI_COMMIT_SHA}/''${TARGET}/garage + } + function to_docker { executor \ --force \ -- cgit v1.2.3 From 9900368380513d8b898d6ac4116e09525341c11b Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Wed, 7 Feb 2024 19:23:32 +0100 Subject: [nix-improvements] modernize Nix infrastructure --- shell.nix | 135 ++++++++++++++++++++++++++++---------------------------------- 1 file changed, 61 insertions(+), 74 deletions(-) (limited to 'shell.nix') diff --git a/shell.nix b/shell.nix index 6d6cc68f..bd150743 100644 --- a/shell.nix +++ b/shell.nix @@ -5,87 +5,36 @@ with import ./nix/common.nix; let pkgs = import pkgsSrc { inherit system; - overlays = [ cargo2nixOverlay ]; }; kaniko = (import ./nix/kaniko.nix) pkgs; manifest-tool = (import ./nix/manifest-tool.nix) pkgs; winscp = (import ./nix/winscp.nix) pkgs; - -in { - # --- Rust Shell --- - # Use it to compile Garage - rust = pkgs.mkShell { +in +{ + # --- Dev shell inherited from flake.nix --- + devShell = devShells.default; + + # --- Continuous integration shell --- + # The shell used for all CI jobs (along with devShell) + ci = pkgs.mkShell { nativeBuildInputs = with pkgs; [ - #rustPlatform.rust.rustc - rustPlatform.rust.cargo - clang - mold - #clippy - rustfmt - #perl - #protobuf - #pkg-config - #openssl - file - #cargo2nix.packages.x86_64-linux.cargo2nix - ]; - }; - - # --- Integration shell --- - # Use it to test Garage with common S3 clients - integration = pkgs.mkShell { - nativeBuildInputs = [ + kaniko + manifest-tool winscp - pkgs.s3cmd - pkgs.awscli2 - pkgs.minio-client - pkgs.rclone - pkgs.socat - pkgs.psmisc - pkgs.which - pkgs.openssl - pkgs.curl - pkgs.jq - ]; - }; - # --- Release shell --- - # A shell built to make releasing easier - release = pkgs.mkShell { + awscli2 + file + s3cmd + minio-client + rclone + socat + psmisc + which + openssl + curl + jq + ]; shellHook = '' - function refresh_toolchain { - pass show deuxfleurs/nix_priv_key > /tmp/nix-signing-key.sec - nix copy \ - --to 's3://nix?endpoint=garage.deuxfleurs.fr®ion=garage&secret-key=/tmp/nix-signing-key.sec' \ - $(nix-store -qR \ - $(nix-build --no-build-output --no-out-link nix/toolchain.nix)) - rm /tmp/nix-signing-key.sec - } - - function refresh_cache { - pass show deuxfleurs/nix_priv_key > /tmp/nix-signing-key.sec - for attr in clippy.amd64 test.amd64 pkgs.{amd64,i386,arm,arm64}.{debug,release}; do - echo "Updating cache for ''${attr}" - derivation=$(nix-instantiate --attr ''${attr}) - nix copy -j8 \ - --to 's3://nix?endpoint=garage.deuxfleurs.fr®ion=garage&secret-key=/tmp/nix-signing-key.sec' \ - $(nix-store -qR ''${derivation%\!bin}) - done - rm /tmp/nix-signing-key.sec - } - - function refresh_flake_cache { - pass show deuxfleurs/nix_priv_key > /tmp/nix-signing-key.sec - for attr in packages.x86_64-linux.default devShell.x86_64-linux; do - echo "Updating cache for ''${attr}" - derivation=$(nix path-info --derivation ".#''${attr}") - nix copy -j8 \ - --to 's3://nix?endpoint=garage.deuxfleurs.fr®ion=garage&secret-key=/tmp/nix-signing-key.sec' \ - $(nix-store -qR ''${derivation}) - done - rm /tmp/nix-signing-key.sec - } - function to_s3 { aws \ --endpoint-url https://garage.deuxfleurs.fr \ @@ -167,7 +116,45 @@ in { s3://garagehq.deuxfleurs.fr/ } ''; - nativeBuildInputs = [ pkgs.awscli2 kaniko manifest-tool ]; + + }; + + # --- Cache shell --- + # A shell for refreshing caches + cache = pkgs.mkShell { + shellHook = '' + function refresh_toolchain { + pass show deuxfleurs/nix_priv_key > /tmp/nix-signing-key.sec + nix copy -j8 \ + --to 's3://nix?endpoint=garage.deuxfleurs.fr®ion=garage&secret-key=/tmp/nix-signing-key.sec' \ + $(nix-store -qR \ + $(nix-build -j8 --no-build-output --no-out-link nix/toolchain.nix)) + rm /tmp/nix-signing-key.sec + } + + function refresh_cache { + pass show deuxfleurs/nix_priv_key > /tmp/nix-signing-key.sec + for attr in clippy.amd64 test.amd64 pkgs.{amd64,i386,arm,arm64}.release; do + echo "Updating cache for ''${attr}" + nix copy -j8 \ + --to 's3://nix?endpoint=garage.deuxfleurs.fr®ion=garage&secret-key=/tmp/nix-signing-key.sec' \ + $(nix path-info ''${attr} --file default.nix --derivation --recursive | sed 's/\.drv$/.drv^*/') + + done + rm /tmp/nix-signing-key.sec + } + + function refresh_flake_cache { + pass show deuxfleurs/nix_priv_key > /tmp/nix-signing-key.sec + for attr in packages.x86_64-linux.default devShells.x86_64-linux.default; do + echo "Updating cache for ''${attr}" + nix copy -j8 \ + --to 's3://nix?endpoint=garage.deuxfleurs.fr®ion=garage&secret-key=/tmp/nix-signing-key.sec' \ + ".#''${attr}" + done + rm /tmp/nix-signing-key.sec + } + ''; }; } -- cgit v1.2.3 From d35d4599de13d2bad95523547bb368f1c754a014 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Fri, 9 Feb 2024 11:15:52 +0100 Subject: [nix-improvements] use kaniko and manifest-tools from nixpkgs, simplify --- shell.nix | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) (limited to 'shell.nix') diff --git a/shell.nix b/shell.nix index bd150743..193ed941 100644 --- a/shell.nix +++ b/shell.nix @@ -6,8 +6,6 @@ let pkgs = import pkgsSrc { inherit system; }; - kaniko = (import ./nix/kaniko.nix) pkgs; - manifest-tool = (import ./nix/manifest-tool.nix) pkgs; winscp = (import ./nix/winscp.nix) pkgs; in { @@ -18,10 +16,10 @@ in # The shell used for all CI jobs (along with devShell) ci = pkgs.mkShell { nativeBuildInputs = with pkgs; [ - kaniko - manifest-tool winscp + kaniko + manifest-tool awscli2 file s3cmd @@ -123,15 +121,6 @@ in # A shell for refreshing caches cache = pkgs.mkShell { shellHook = '' - function refresh_toolchain { - pass show deuxfleurs/nix_priv_key > /tmp/nix-signing-key.sec - nix copy -j8 \ - --to 's3://nix?endpoint=garage.deuxfleurs.fr®ion=garage&secret-key=/tmp/nix-signing-key.sec' \ - $(nix-store -qR \ - $(nix-build -j8 --no-build-output --no-out-link nix/toolchain.nix)) - rm /tmp/nix-signing-key.sec - } - function refresh_cache { pass show deuxfleurs/nix_priv_key > /tmp/nix-signing-key.sec for attr in clippy.amd64 test.amd64 pkgs.{amd64,i386,arm,arm64}.release; do @@ -143,17 +132,6 @@ in done rm /tmp/nix-signing-key.sec } - - function refresh_flake_cache { - pass show deuxfleurs/nix_priv_key > /tmp/nix-signing-key.sec - for attr in packages.x86_64-linux.default devShells.x86_64-linux.default; do - echo "Updating cache for ''${attr}" - nix copy -j8 \ - --to 's3://nix?endpoint=garage.deuxfleurs.fr®ion=garage&secret-key=/tmp/nix-signing-key.sec' \ - ".#''${attr}" - done - rm /tmp/nix-signing-key.sec - } ''; }; } -- cgit v1.2.3 From 561fad0b44f78372357c1c76e3708a062d703b33 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Fri, 9 Feb 2024 12:19:16 +0100 Subject: [nix-improvements] get rid of Drone --- shell.nix | 9 --------- 1 file changed, 9 deletions(-) (limited to 'shell.nix') diff --git a/shell.nix b/shell.nix index 193ed941..12daa502 100644 --- a/shell.nix +++ b/shell.nix @@ -34,15 +34,6 @@ in ]; shellHook = '' function to_s3 { - aws \ - --endpoint-url https://garage.deuxfleurs.fr \ - --region garage \ - s3 cp \ - ./result-bin/bin/garage \ - s3://garagehq.deuxfleurs.fr/_releases/''${DRONE_TAG:-$DRONE_COMMIT}/''${TARGET}/garage - } - - function to_s3_woodpecker { aws \ --endpoint-url https://garage.deuxfleurs.fr \ --region garage \ -- cgit v1.2.3 From f7ae966ed34d3ca8fb20afd2f20874dd42df7f7e Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Fri, 9 Feb 2024 12:47:03 +0100 Subject: [nix-improvements] special case for Docker's "386" architecture --- shell.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'shell.nix') diff --git a/shell.nix b/shell.nix index 12daa502..0fa02b66 100644 --- a/shell.nix +++ b/shell.nix @@ -45,8 +45,8 @@ in function to_docker { executor \ --force \ - --customPlatform="''${DOCKER_PLATFORM}" \ - --destination "''${CONTAINER_NAME}:''${CONTAINER_TAG}" \ + --customPlatform="$(echo "''${DOCKER_PLATFORM}" | sed 's/i386/386/')" \ + --destination "$(echo "''${CONTAINER_NAME}" | sed 's/i386/386/'):''${CONTAINER_TAG}" \ --context dir://`pwd` \ --verbosity=debug } -- cgit v1.2.3