tailscale: use buildGoModule and enable tests (#386492)
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
buildGo123Module,
|
||||
buildGoModule,
|
||||
tailscale,
|
||||
}:
|
||||
|
||||
buildGo123Module {
|
||||
buildGoModule {
|
||||
pname = "tailscale-nginx-auth";
|
||||
inherit (tailscale) version src vendorHash;
|
||||
|
||||
@@ -27,11 +27,11 @@ buildGo123Module {
|
||||
install -D -m0444 -t $out/lib/systemd/system ./cmd/nginx-auth/tailscale.nginx-auth.socket
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://tailscale.com";
|
||||
description = "Tool that allows users to use Tailscale Whois authentication with NGINX as a reverse proxy";
|
||||
license = licenses.bsd3;
|
||||
license = lib.licenses.bsd3;
|
||||
mainProgram = "tailscale.nginx-auth";
|
||||
maintainers = with maintainers; [ phaer ];
|
||||
maintainers = with lib.maintainers; [ phaer ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,25 +1,30 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
buildGo123Module,
|
||||
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
|
||||
makeWrapper,
|
||||
installShellFiles,
|
||||
# runtime tooling - linux
|
||||
getent,
|
||||
iproute2,
|
||||
iptables,
|
||||
lsof,
|
||||
shadow,
|
||||
procps,
|
||||
# runtime tooling - darwin
|
||||
lsof,
|
||||
|
||||
nixosTests,
|
||||
installShellFiles,
|
||||
tailscale-nginx-auth,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.80.2";
|
||||
in
|
||||
buildGo123Module {
|
||||
buildGoModule {
|
||||
pname = "tailscale";
|
||||
inherit version;
|
||||
|
||||
@@ -60,6 +65,12 @@ buildGo123Module {
|
||||
"cmd/tsidp"
|
||||
];
|
||||
|
||||
excludedPackages = [
|
||||
# exlude integration tests which fail to work
|
||||
# and require additional tooling
|
||||
"tstest/integration"
|
||||
];
|
||||
|
||||
ldflags = [
|
||||
"-w"
|
||||
"-s"
|
||||
@@ -71,7 +82,59 @@ buildGo123Module {
|
||||
"ts_include_cli"
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
# remove vendored tooling to ensure it's not used
|
||||
# also avoids some unnecessary tests
|
||||
preBuild = ''
|
||||
rm -rf ./tool
|
||||
'';
|
||||
|
||||
preCheck = ''
|
||||
# feed in all tests for testing
|
||||
# subPackages above limits what is built to just what we
|
||||
# want but also limits the tests
|
||||
unset subPackages
|
||||
|
||||
# several tests hang
|
||||
rm tsnet/tsnet_test.go
|
||||
'';
|
||||
|
||||
checkFlags =
|
||||
let
|
||||
skippedTests = [
|
||||
# dislikes vendoring
|
||||
"TestPackageDocs" # .
|
||||
# tries to start tailscaled
|
||||
"TestContainerBoot" # cmd/containerboot
|
||||
|
||||
# just part of a tool which generates yaml for k8s CRDs
|
||||
# requires helm
|
||||
"Test_generate" # cmd/k8s-operator/generate
|
||||
# self reported potentially flakey test
|
||||
"TestConnMemoryOverhead" # control/controlbase
|
||||
|
||||
# interacts with `/proc/net/route` and need a default route
|
||||
"TestDefaultRouteInterface" # net/netmon
|
||||
"TestRouteLinuxNetlink" # net/netmon
|
||||
"TestGetRouteTable" # net/routetable
|
||||
|
||||
# remote udp call to 8.8.8.8
|
||||
"TestDefaultInterfacePortable" # net/netutil
|
||||
|
||||
# launches an ssh server which works when provided openssh
|
||||
# also requires executing commands but nixbld user has /noshell
|
||||
"TestSSH" # ssh/tailssh
|
||||
# wants users alice & ubuntu
|
||||
"TestMultipleRecorders" # ssh/tailssh
|
||||
"TestSSHAuthFlow" # ssh/tailssh
|
||||
"TestSSHRecordingCancelsSessionsOnUploadFailure" # ssh/tailssh
|
||||
"TestSSHRecordingNonInteractive" # ssh/tailssh
|
||||
|
||||
# test for a dev util which helps to fork golang.org/x/crypto/acme
|
||||
# not necessary and fails to match
|
||||
"TestSyncedToUpstream" # tempfork/acme
|
||||
];
|
||||
in
|
||||
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
|
||||
|
||||
postInstall =
|
||||
''
|
||||
@@ -93,9 +156,9 @@ buildGo123Module {
|
||||
wrapProgram $out/bin/tailscaled \
|
||||
--prefix PATH : ${
|
||||
lib.makeBinPath [
|
||||
getent
|
||||
iproute2
|
||||
iptables
|
||||
getent
|
||||
shadow
|
||||
]
|
||||
} \
|
||||
@@ -116,13 +179,13 @@ buildGo123Module {
|
||||
inherit tailscale-nginx-auth;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://tailscale.com";
|
||||
description = "Node agent for Tailscale, a mesh VPN built on WireGuard";
|
||||
changelog = "https://github.com/tailscale/tailscale/releases/tag/v${version}";
|
||||
license = licenses.bsd3;
|
||||
license = lib.licenses.bsd3;
|
||||
mainProgram = "tailscale";
|
||||
maintainers = with maintainers; [
|
||||
maintainers = with lib.maintainers; [
|
||||
mbaillie
|
||||
jk
|
||||
mfrw
|
||||
|
||||
Reference in New Issue
Block a user