nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 77 lines 2.1 kB view raw
1{ 2 stdenv, 3 lib, 4 fetchFromGitHub, 5 buildGoModule, 6 docker, 7 gotestsum, 8 versionCheckHook, 9 installShellFiles, 10}: 11 12buildGoModule (finalAttrs: { 13 pname = "docker-language-server"; 14 version = "0.20.1"; 15 16 src = fetchFromGitHub { 17 owner = "docker"; 18 repo = "docker-language-server"; 19 tag = "v${finalAttrs.version}"; 20 hash = "sha256-OSAySCTK2temrVxmkRnrl5YWVbmkp8DRlXFVxTzEW3Q="; 21 }; 22 23 vendorHash = "sha256-ztA+/4l180UKTKrsqTyysDcD4oQSDgnBYUaiKDF6LvI="; 24 25 nativeBuildInputs = [ 26 installShellFiles 27 ]; 28 29 nativeCheckInputs = [ 30 docker 31 gotestsum 32 ]; 33 34 checkPhase = '' 35 runHook preCheck 36 37 # disable some tests because of sandbox 38 excludedPackages="e2e-tests|/buildkit$|/scout$" 39 packages=$(go list ./... | grep -vE "$excludedPackages") 40 41 gotestsum -- $packages \ 42 -timeout 30s \ 43 -skip "TestCollectDiagnostics|TestCompletion_ImageTags|TestInlayHint" 44 45 go test ./e2e-tests/... \ 46 -timeout 120s \ 47 -skip "TestPublishDiagnostics|TestHover" 48 49 runHook postCheck 50 ''; 51 52 ldflags = [ 53 "-s" 54 "-X 'github.com/docker/docker-language-server/internal/pkg/cli/metadata.Version=${finalAttrs.version}'" 55 ]; 56 57 nativeInstallCheckInputs = [ 58 versionCheckHook 59 ]; 60 doInstallCheck = true; 61 62 postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' 63 installShellCompletion --cmd '${finalAttrs.meta.mainProgram}' \ 64 --bash <("$out/bin/${finalAttrs.meta.mainProgram}" completion bash) \ 65 --zsh <("$out/bin/${finalAttrs.meta.mainProgram}" completion zsh) \ 66 --fish <("$out/bin/${finalAttrs.meta.mainProgram}" completion fish) 67 ''; 68 69 meta = { 70 description = "Language server for providing language features for file types in the Docker ecosystem (Dockerfiles, Compose files, and Bake files)"; 71 homepage = "https://github.com/docker/docker-language-server"; 72 changelog = "https://github.com/docker/docker-language-server/blob/${finalAttrs.src.tag}/CHANGELOG.md"; 73 mainProgram = "docker-language-server"; 74 license = lib.licenses.asl20; 75 maintainers = with lib.maintainers; [ baongoc124 ]; 76 }; 77})