Add ./go/tests.sh
This commit is contained in:
parent
48611df2cb
commit
168b65ea1d
51
default.nix
51
default.nix
@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
|
|
||||||
buildSystem ? builtins.currentSystem,
|
buildSystem ? builtins.currentSystem,
|
||||||
hostSystem ? buildSystem,
|
hostSystem ? buildSystem,
|
||||||
pkgsNix ? (import ./nix/pkgs.nix),
|
pkgsNix ? (import ./nix/pkgs.nix),
|
||||||
@ -106,23 +105,25 @@ in rec {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
appDirBase = pkgs.buildEnv {
|
||||||
|
name = "isle-AppDir-base";
|
||||||
|
paths = [
|
||||||
|
|
||||||
|
./AppDir
|
||||||
|
version
|
||||||
|
dnsmasq
|
||||||
|
nebula
|
||||||
|
garage
|
||||||
|
pkgs.minio-client
|
||||||
|
|
||||||
|
] ++ (if bootstrap != null then [ rootedBootstrap ] else []);
|
||||||
|
};
|
||||||
|
|
||||||
appDir = pkgs.stdenv.mkDerivation {
|
appDir = pkgs.stdenv.mkDerivation {
|
||||||
name = "isle-AppDir";
|
name = "isle-AppDir";
|
||||||
|
|
||||||
src = pkgs.buildEnv {
|
src = appDirBase;
|
||||||
name = "isle-AppDir-base";
|
inherit goBinaries;
|
||||||
paths = [
|
|
||||||
|
|
||||||
./AppDir
|
|
||||||
version
|
|
||||||
dnsmasq
|
|
||||||
nebula
|
|
||||||
garage
|
|
||||||
pkgs.minio-client
|
|
||||||
goBinaries
|
|
||||||
|
|
||||||
] ++ (if bootstrap != null then [ rootedBootstrap ] else []);
|
|
||||||
};
|
|
||||||
|
|
||||||
builder = builtins.toFile "build.sh" ''
|
builder = builtins.toFile "build.sh" ''
|
||||||
source $stdenv/setup
|
source $stdenv/setup
|
||||||
@ -130,7 +131,7 @@ in rec {
|
|||||||
chmod +w "$out" -R
|
chmod +w "$out" -R
|
||||||
|
|
||||||
cd "$out"
|
cd "$out"
|
||||||
cp ./bin/entrypoint ./AppRun
|
cp $goBinaries/bin/entrypoint ./AppRun
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -178,4 +179,22 @@ in rec {
|
|||||||
export SHELL=${pkgs.bash}/bin/bash
|
export SHELL=${pkgs.bash}/bin/bash
|
||||||
exec ${pkgs.bash}/bin/bash ${./tests}/entrypoint.sh "$@"
|
exec ${pkgs.bash}/bin/bash ${./tests}/entrypoint.sh "$@"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
devShell = pkgs.mkShell {
|
||||||
|
buildInputs = [
|
||||||
|
pkgs.go
|
||||||
|
pkgs.golangci-lint
|
||||||
|
(pkgs.callPackage ./nix/gowrap.nix {})
|
||||||
|
];
|
||||||
|
shellHook = ''
|
||||||
|
true # placeholder
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
testShell = pkgs.mkShell {
|
||||||
|
APPDIR = appDirBase;
|
||||||
|
buildInputs = [
|
||||||
|
pkgs.go
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
17
go/test.sh
Executable file
17
go/test.sh
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
|
cd "$SCRIPT_DIR" || exit
|
||||||
|
|
||||||
|
this_user="$(whoami)"
|
||||||
|
|
||||||
|
nix-shell -A testShell ../default.nix --run "
|
||||||
|
echo \"Requesting sudo in order to set thread capabilities, will drop back down to user '$this_user' immediately\"
|
||||||
|
sudo -E capsh \\
|
||||||
|
--caps=\"cap_net_admin,cap_net_bind_service+eip cap_setpcap,cap_setuid,cap_setgid+ep\" \\
|
||||||
|
--keep=1 \\
|
||||||
|
--user=\"$this_user\" \\
|
||||||
|
--addamb=cap_net_admin \\
|
||||||
|
--addamb=cap_net_bind_service \\
|
||||||
|
-- -c 'go test $*'
|
||||||
|
"
|
23
shell.nix
23
shell.nix
@ -1,22 +1 @@
|
|||||||
{
|
{}@args: ((import ./default.nix) args).devShell
|
||||||
|
|
||||||
buildSystem ? builtins.currentSystem,
|
|
||||||
pkgsNix ? (import ./nix/pkgs.nix),
|
|
||||||
|
|
||||||
}: let
|
|
||||||
|
|
||||||
pkgs = pkgsNix.default {
|
|
||||||
inherit buildSystem;
|
|
||||||
hostSystem = buildSystem;
|
|
||||||
};
|
|
||||||
|
|
||||||
in pkgs.mkShell {
|
|
||||||
buildInputs = [
|
|
||||||
pkgs.go
|
|
||||||
pkgs.golangci-lint
|
|
||||||
(pkgs.callPackage ./nix/gowrap.nix {})
|
|
||||||
];
|
|
||||||
shellHook = ''
|
|
||||||
true # placeholder
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user