From 1674072ca9c98e2be23efb32da13d9a4a9fc4df8 Mon Sep 17 00:00:00 2001 From: kirinnee Date: Wed, 29 Jan 2025 16:25:26 +0800 Subject: [PATCH] new(garden): Automation for Kubernetes development and testing --- .github/workflows/ci.yaml | 2 ++ binWrapper/gardenio.nix | 53 +++++++++++++++++++++++++++++++++++++++ default.nix | 1 + 3 files changed, 56 insertions(+) create mode 100644 binWrapper/gardenio.nix diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 506cde5..2256d6e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -53,6 +53,7 @@ jobs: .#aws-export-credentials .#cyanprint .#atomiutils + .#gardenio -c bash -c ' sg --version && upstash --version && @@ -66,6 +67,7 @@ jobs: toml --version && nix-share && cyanprint --version && + garden version && echo "🎉 Done"' release: diff --git a/binWrapper/gardenio.nix b/binWrapper/gardenio.nix new file mode 100644 index 0000000..f1fb7e0 --- /dev/null +++ b/binWrapper/gardenio.nix @@ -0,0 +1,53 @@ +{ nixpkgs }: +with nixpkgs; +let + inherit (stdenv.hostPlatform) system; + throwSystem = throw "Unsupported system: ${system}"; + + plat = { + x86_64-linux = "linux-amd64"; + aarch64-linux = "linux-arm64"; + + x86_64-darwin = "macos-amd64"; + aarch64-darwin = "macos-arm64"; + }.${system} or throwSystem; + + archive_fmt = "tar.gz"; + + sha256 = { + x86_64-linux = "sha256-SKCSVjuinX3K1k8nImiXKn00CZUimioMcwB7YzmhJ9M="; + aarch64-linux = "sha256-UUa6eI5CpquVsm5wkzzVypkKOIlsmHZvyWOtYotmUkg="; + + x86_64-darwin = "sha256-6PGfbpNjdMEVSse0SfSxgjTbiwFtx2KchY7EBwmlOLo="; + aarch64-darwin = "sha256-5fhtkuQqP+IXNoGhpYuSLpyXVJwLqMGgZ/x42shOoG4="; + }.${system} or throwSystem; +in +let version = "0.13.50"; in + +stdenv.mkDerivation (finalAttrs: { + pname = "gardenio"; + inherit version; + + installPhase = '' + mkdir -p $out/bin + cp garden $out/bin/garden + chmod +x $out/bin/garden + ''; + + src = builtins.fetchurl { + url = "https://download.garden.io/core/${version}/garden-${version}-${plat}.tar.gz"; + inherit sha256; + }; + + meta = with lib; { + description = "garden"; + longDescription = '' + Automation for Kubernetes development and testing. + ''; + mainProgram = "garden"; + homepage = "https://garden.io/"; + downloadPage = "https://github.com/garden-io/garden/releases"; + license = licenses.mit; + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ]; + }; +}) diff --git a/default.nix b/default.nix index 08aae94..b74626d 100644 --- a/default.nix +++ b/default.nix @@ -22,6 +22,7 @@ let bin = { mirrord = import ./binWrapper/mirrord.nix { inherit nixpkgs; }; atomiutils = import ./binWrapper/atomiutils.nix { inherit nixpkgs; }; + gardenio = import ./binWrapper/gardenio.nix { inherit nixpkgs; }; }; rust = import ./rust/default.nix { inherit nixpkgs fenix; };