forked from M-Labs/nix-scripts
use new technique to access network from Hydra tests
This commit is contained in:
parent
eb867a355b
commit
50f9897c2e
|
@ -31,13 +31,6 @@ let
|
||||||
echo "{ stdenv, git, fetchgit }: \"$MAJOR_VERSION.$COMMIT_COUNT.`cut -c1-8 <<< $REV`$SUFFIX\"" > $out/pkgs/artiq-version.nix
|
echo "{ stdenv, git, fetchgit }: \"$MAJOR_VERSION.$COMMIT_COUNT.`cut -c1-8 <<< $REV`$SUFFIX\"" > $out/pkgs/artiq-version.nix
|
||||||
echo "{ stdenv, git, fetchgit }: \"$TIMESTAMP\"" > $out/pkgs/artiq-timestamp.nix
|
echo "{ stdenv, git, fetchgit }: \"$TIMESTAMP\"" > $out/pkgs/artiq-timestamp.nix
|
||||||
'';
|
'';
|
||||||
generateTestOkHash = pkgs.runCommand "generate-test-ok-hash" { buildInputs = [ pkgs.nix ]; }
|
|
||||||
''
|
|
||||||
TMPDIR=`mktemp -d`
|
|
||||||
cp ${generatedNix}/pkgs/artiq-version.nix $TMPDIR/passed
|
|
||||||
HASH=`nix-hash --type sha256 --base32 $TMPDIR`
|
|
||||||
echo \"$HASH\" > $out
|
|
||||||
'';
|
|
||||||
artiqpkgs = import "${generatedNix}/default.nix" { inherit pkgs; };
|
artiqpkgs = import "${generatedNix}/default.nix" { inherit pkgs; };
|
||||||
artiqVersion = import "${generatedNix}/pkgs/artiq-version.nix" (with pkgs; { inherit stdenv fetchgit git; });
|
artiqVersion = import "${generatedNix}/pkgs/artiq-version.nix" (with pkgs; { inherit stdenv fetchgit git; });
|
||||||
windowsRunner = overrides:
|
windowsRunner = overrides:
|
||||||
|
@ -63,18 +56,11 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# HACK: Abuse fixed-output derivations to escape the sandbox and run the hardware
|
|
||||||
# unit tests, all integrated in the Hydra interface.
|
|
||||||
# One major downside of this hack is the tests are only run when generateTestOkHash
|
|
||||||
# changes, i.e. when the ARTIQ version changes (and not the dependencies).
|
|
||||||
# Impure derivations, when they land in Nix/Hydra, should improve the situation.
|
|
||||||
extended-tests = pkgs.stdenv.mkDerivation {
|
extended-tests = pkgs.stdenv.mkDerivation {
|
||||||
name = "extended-tests";
|
name = "extended-tests";
|
||||||
|
|
||||||
outputHashAlgo = "sha256";
|
# requires patched Nix
|
||||||
outputHashMode = "recursive";
|
__networked = true;
|
||||||
outputHash = import generateTestOkHash;
|
|
||||||
__hydraRetry = false;
|
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
(pkgs.python3.withPackages(ps: [ ps.paramiko artiqpkgs.artiq artiqpkgs.artiq-board-kc705-nist_clock ]))
|
(pkgs.python3.withPackages(ps: [ ps.paramiko artiqpkgs.artiq artiqpkgs.artiq-board-kc705-nist_clock ]))
|
||||||
|
@ -119,8 +105,7 @@ in
|
||||||
${windowsRunner { testCommand = "set ARTIQ_ROOT=%cd%\\Anaconda3\\envs\\artiq-env\\Lib\\site-packages\\artiq\\examples\\kc705_nist_clock&& python -m unittest discover -v artiq.test.coredevice"; }}/bin/wfvm-run-windows-tests
|
${windowsRunner { testCommand = "set ARTIQ_ROOT=%cd%\\Anaconda3\\envs\\artiq-env\\Lib\\site-packages\\artiq\\examples\\kc705_nist_clock&& python -m unittest discover -v artiq.test.coredevice"; }}/bin/wfvm-run-windows-tests
|
||||||
)
|
)
|
||||||
|
|
||||||
mkdir $out
|
touch $out
|
||||||
cp ${generatedNix}/pkgs/artiq-version.nix $out/passed
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue