diff options
author | Soner Sayakci <s.sayakci@shopware.com> | 2022-10-24 20:08:00 +0000 |
---|---|---|
committer | Soner Sayakci <s.sayakci@shopware.com> | 2023-02-06 13:15:00 +0100 |
commit | 56ecab709a5a6e49049c0892a7cc59cfa22bdd98 (patch) | |
tree | 6cb209777f6858016e214cbfd5e43d92357c6b19 /pkgs/development/tools/coder/default.nix | |
parent | 0566d27d03a7b9c285045f57004a6ba2c2613454 (diff) |
nixos/coder: init module
Diffstat (limited to 'pkgs/development/tools/coder/default.nix')
-rw-r--r-- | pkgs/development/tools/coder/default.nix | 59 |
1 files changed, 55 insertions, 4 deletions
diff --git a/pkgs/development/tools/coder/default.nix b/pkgs/development/tools/coder/default.nix index 30d22bc183dc2..c81cdce753ecc 100644 --- a/pkgs/development/tools/coder/default.nix +++ b/pkgs/development/tools/coder/default.nix @@ -1,8 +1,18 @@ -{ buildGoModule +{ lib , fetchFromGitHub , installShellFiles -, lib +, makeWrapper +, buildGoModule +, fetchYarnDeps +, fixup_yarn_lock +, pkg-config +, nodejs +, yarn +, nodePackages +, python3 +, terraform }: + buildGoModule rec { pname = "coder"; version = "0.16.0"; @@ -14,18 +24,59 @@ buildGoModule rec { hash = "sha256-3rGpyJzGkZYUEvKKDzj2I5sqrUImmmX7cXWM9UClPLY="; }; + offlineCache = fetchYarnDeps { + yarnLock = src + "/site/yarn.lock"; + hash = "sha256-4GbM7GNZ3wHIZJIJuHw1v/SwjUNc1vi8IHRGaGwPGZQ="; + }; + + subPackages = [ "cmd/..." ]; + + vendorHash = "sha256-bb9jBno7elO6qKGjacpX3rxgrpJpGpTxMQtdBYjBzMk="; + # integration tests require network access doCheck = false; - vendorHash = "sha256-bb9jBno7elO6qKGjacpX3rxgrpJpGpTxMQtdBYjBzMk="; + ldflags = [ + "-s" + "-w" + "-X github.com/coder/coder/buildinfo.tag=${version}" + ]; + + preBuild = '' + export HOME=$TEMPDIR - nativeBuildInputs = [ installShellFiles ]; + pushd site + yarn config --offline set yarn-offline-mirror ${offlineCache} + fixup_yarn_lock yarn.lock + + # node-gyp tries to download always the headers and fails: https://github.com/NixOS/nixpkgs/issues/195404 + yarn remove --offline jest-canvas-mock canvas + + NODE_ENV=production node node_modules/.bin/vite build + + popd + ''; + + tags = [ "embed" ]; + + nativeBuildInputs = [ + fixup_yarn_lock + installShellFiles + makeWrapper + nodePackages.node-pre-gyp + nodejs + pkg-config + python3 + yarn + ]; postInstall = '' installShellCompletion --cmd coder \ --bash <($out/bin/coder completion bash) \ --fish <($out/bin/coder completion fish) \ --zsh <($out/bin/coder completion zsh) + + wrapProgram $out/bin/coder --prefix PATH : ${lib.makeBinPath [ terraform ]} ''; meta = with lib; { |