60 lines
1.9 KiB
Nix
60 lines
1.9 KiB
Nix
|
{ buildGoPackage, fetchFromGitHub, lib }:
|
||
|
|
||
|
let
|
||
|
removeVendoredPackages = goDeps:
|
||
|
''
|
||
|
echo "Removing any vendored duplicate of direct dependency... "
|
||
|
for dir in $(find $NIX_BUILD_TOP/go/src -type d -name vendor); do
|
||
|
${builtins.concatStringsSep "\n" (map (goDep: ''
|
||
|
if test -d $dir/${goDep.goPackagePath}; then
|
||
|
echo "Removing duplicate directory at $dir/${goDep.goPackagePath}"
|
||
|
rm -rf $dir/${goDep.goPackagePath}
|
||
|
fi
|
||
|
'') goDeps)}
|
||
|
done
|
||
|
echo "Done"
|
||
|
'';
|
||
|
in
|
||
|
buildGoPackage rec {
|
||
|
name = "jx";
|
||
|
version = "1.3.955";
|
||
|
|
||
|
goPackagePath = "github.com/jenkins-x/jx";
|
||
|
subPackages = [ "cmd/jx" ];
|
||
|
|
||
|
src = fetchFromGitHub {
|
||
|
owner = "jenkins-x";
|
||
|
repo = "jx";
|
||
|
rev = "v${version}";
|
||
|
sha256 = "0h4ck1a8rlyg10gaxbnwvlabwjlhdrigrina84x4m2gsqr3lnp9a";
|
||
|
};
|
||
|
|
||
|
# Some of the dependencies have their own checked in vendor directory that
|
||
|
# vendor their dependencies. However, some of those dependencies are also
|
||
|
# directly pulled down through the vgo modules. Removing these dependencies
|
||
|
# as they confuse the go compiler and causes the build to fail.
|
||
|
# Removing all the vendor directories also breaks the build.
|
||
|
preBuild = removeVendoredPackages (import goDeps);
|
||
|
|
||
|
buildFlagsArray = ''
|
||
|
-ldflags=
|
||
|
-X ${goPackagePath}/pkg/version.Version=${version}
|
||
|
-X ${goPackagePath}/pkg/version.Revision=${version}
|
||
|
'';
|
||
|
|
||
|
goDeps = ./deps.nix;
|
||
|
|
||
|
meta = with lib; {
|
||
|
description = "JX is a command line tool for installing and using Jenkins X.";
|
||
|
longDescription = ''
|
||
|
Jenkins X provides automated CI+CD for Kubernetes with Preview
|
||
|
Environments on Pull Requests using Jenkins, Knative Build, Prow,
|
||
|
Skaffold and Helm.
|
||
|
'';
|
||
|
homepage = https://github.com/jenkins-x/jx;
|
||
|
license = licenses.asl20 ;
|
||
|
maintainers = with maintainers; [ kalbasit ];
|
||
|
platforms = platforms.linux ++ platforms.darwin;
|
||
|
};
|
||
|
}
|