diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/cluster/argo/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/networking/cluster/argo/default.nix | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix new file mode 100644 index 000000000000..3ef2412a9f5c --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix @@ -0,0 +1,58 @@ +{ lib, buildGoModule, buildGoPackage, fetchFromGitHub }: + +let + # Argo can package a static server in the CLI using the `staticfiles` go module. + # We build the CLI without the static server for simplicity, but the tool is still required for + # compilation to succeed. + # See: https://github.com/argoproj/argo/blob/d7690e32faf2ac5842468831daf1443283703c25/Makefile#L117 + staticfiles = buildGoPackage rec { + name = "staticfiles"; + src = fetchFromGitHub { + owner = "bouk"; + repo = "staticfiles"; + rev = "827d7f6389cd410d0aa3f3d472a4838557bf53dd"; + sha256 = "0xarhmsqypl8036w96ssdzjv3k098p2d4mkmw5f6hkp1m3j67j61"; + }; + + goPackagePath = "bou.ke/staticfiles"; + }; +in +buildGoModule rec { + pname = "argo"; + version = "2.8.1"; + + src = fetchFromGitHub { + owner = "argoproj"; + repo = "argo"; + rev = "v${version}"; + sha256 = "193nxc27fh37wf035mclvwwwxjjfc8nnbncg009fg19ycqmvmgvc"; + }; + + vendorSha256 = "1p9b2m20gxc7iyq08mvllf5dpi4m06aw233sb45d05d624kw4aps"; + + subPackages = [ "cmd/argo" ]; + + preBuild = '' + mkdir -p ui/dist/app + echo "Built without static files" > ui/dist/app/index.html + + ${staticfiles}/bin/staticfiles -o server/static/files.go ui/dist/app + ''; + + buildFlagsArray = '' + -ldflags= + -s -w + -X github.com/argoproj/argo.version=${version} + -X github.com/argoproj/argo.gitCommit=${src.rev} + -X github.com/argoproj/argo.gitTreeState=clean + -X github.com/argoproj/argo.gitTag=${version} + ''; + + meta = with lib; { + description = "Container native workflow engine for Kubernetes"; + homepage = "https://github.com/argoproj/argo"; + license = licenses.asl20; + maintainers = with maintainers; [ groodt ]; + platforms = platforms.unix; + }; +} |