forked from M-Labs/nix-scripts
wfvm: remove dead code
This commit is contained in:
parent
768d38db46
commit
0a2e7dae93
|
@ -2,5 +2,5 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
makeWindowsImage = attrs: import ./win.nix ({ inherit pkgs; } // attrs);
|
makeWindowsImage = attrs: import ./win.nix ({ inherit pkgs; } // attrs);
|
||||||
pkgs = import ./pkgs.nix { inherit pkgs; };
|
layers = (import ./layers { inherit pkgs; });
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
win = (import ./default.nix { inherit pkgs; });
|
win = (import ./default.nix { inherit pkgs; });
|
||||||
layers = (import ./layers { inherit pkgs; });
|
|
||||||
in
|
in
|
||||||
win.makeWindowsImage {
|
win.makeWindowsImage {
|
||||||
|
|
||||||
|
@ -40,7 +39,7 @@ win.makeWindowsImage {
|
||||||
defaultUser = "artiq";
|
defaultUser = "artiq";
|
||||||
|
|
||||||
# Imperative installation commands, to be installed incrementally
|
# Imperative installation commands, to be installed incrementally
|
||||||
installCommands = [ layers.anaconda3 layers.msys2 layers.msys2-packages ];
|
installCommands = with win.layers; [ anaconda3 msys2 msys2-packages ];
|
||||||
|
|
||||||
# services = {
|
# services = {
|
||||||
# # Enable remote management
|
# # Enable remote management
|
||||||
|
@ -59,22 +58,4 @@ win.makeWindowsImage {
|
||||||
# userLocale = "en-US";
|
# userLocale = "en-US";
|
||||||
# systemLocale = "en-US";
|
# systemLocale = "en-US";
|
||||||
|
|
||||||
# packages = [
|
|
||||||
# (
|
|
||||||
# win.pkgs.makeMSIPkg {
|
|
||||||
# # Note: File not in repository, it's meant as an example to subsitute
|
|
||||||
# name = "notepadplusplus";
|
|
||||||
# msi = ./Notepad++7.7.msi;
|
|
||||||
# # Custom cert
|
|
||||||
# # cert = ./notepad++-cert.cer
|
|
||||||
# }
|
|
||||||
# )
|
|
||||||
# (
|
|
||||||
# win.pkgs.makeCrossPkg {
|
|
||||||
# name = "hello";
|
|
||||||
# pkg = pkgs.pkgsCross.mingwW64.hello;
|
|
||||||
# }
|
|
||||||
# )
|
|
||||||
# ];
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
# This runs `run-test.nix` with `nix-build`
|
|
||||||
|
|
||||||
{ pkgs ? import <nixpkgs> {}
|
|
||||||
, artiqpkgs ? import ../. { inherit pkgs; }
|
|
||||||
, diskImage ? (import ./build.nix { inherit pkgs; })
|
|
||||||
, qemuMem ? "2G"
|
|
||||||
, testTimeout ? 180
|
|
||||||
}:
|
|
||||||
|
|
||||||
with pkgs;
|
|
||||||
|
|
||||||
let
|
|
||||||
windowsRunner = overrides:
|
|
||||||
import ./run-test.nix (
|
|
||||||
{
|
|
||||||
inherit pkgs diskImage qemuMem testTimeout;
|
|
||||||
sipycoPkg = artiqpkgs.conda-sipyco;
|
|
||||||
artiqPkg = artiqpkgs.conda-artiq;
|
|
||||||
} // overrides
|
|
||||||
);
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = "windows-test";
|
|
||||||
|
|
||||||
phases = [ "installPhase" "checkPhase" ];
|
|
||||||
installPhase = "touch $out";
|
|
||||||
doCheck = true;
|
|
||||||
checkPhase = ''
|
|
||||||
${windowsRunner { testCommand = "set ARTIQ_ROOT=%cd%\\anaconda\\envs\\artiq-env\\Lib\\site-packages\\artiq\\examples\\kc705_nist_clock&&python -m unittest discover -v artiq.test"; }}/bin/run.sh
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,110 +0,0 @@
|
||||||
{ pkgs ? import <nixpkgs> {}
|
|
||||||
, lib ? pkgs.lib
|
|
||||||
}:
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
This file creates a simple custom simple bundle format containing
|
|
||||||
a powershell script plus any required executables and assets.
|
|
||||||
|
|
||||||
These are assets that are only handled in the pure build steps.
|
|
||||||
|
|
||||||
Impure packages are installed in _another_ step that runs impurely outside of
|
|
||||||
the Nix sandbox.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
let
|
|
||||||
|
|
||||||
makeBundle =
|
|
||||||
{ name
|
|
||||||
, bundle
|
|
||||||
}: pkgs.runCommandNoCC "${name}-archive.tar" {} ''
|
|
||||||
cp -r -L ${bundle} build
|
|
||||||
tar -cpf $out -C build .
|
|
||||||
'';
|
|
||||||
|
|
||||||
|
|
||||||
in
|
|
||||||
rec {
|
|
||||||
|
|
||||||
/*
|
|
||||||
Make a custom install bundle
|
|
||||||
*/
|
|
||||||
makePkg =
|
|
||||||
{ name
|
|
||||||
, src
|
|
||||||
, installScript
|
|
||||||
}: let
|
|
||||||
installScript_ = pkgs.writeText "${name}-install-script" installScript;
|
|
||||||
|
|
||||||
bundle = pkgs.runCommandNoCC "${name}-bundle" {} ''
|
|
||||||
mkdir build
|
|
||||||
ln -s ${src} build/"$(stripHash "${src}")"
|
|
||||||
ln -s ${installScript_} build/install.ps1
|
|
||||||
mv build $out
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
makeBundle {
|
|
||||||
inherit name bundle;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
Make an install bundle from a .msi
|
|
||||||
*/
|
|
||||||
makeMSIPkg =
|
|
||||||
{ name
|
|
||||||
, msi
|
|
||||||
, cert ? null
|
|
||||||
, ADDLOCAL ? []
|
|
||||||
, preInstall ? ""
|
|
||||||
, postInstall ? ""
|
|
||||||
}: let
|
|
||||||
installScript = pkgs.writeText "${name}-install-script" ''
|
|
||||||
${preInstall}
|
|
||||||
${if cert != null then "certutil.exe -f -addstore TrustedPublisher cert.cer" else ""}
|
|
||||||
msiexec.exe /i .\${name}.msi ${if ADDLOCAL != [] then "ADDLOCAL=" else ""}${lib.concatStringsSep "," ADDLOCAL}
|
|
||||||
${postInstall}
|
|
||||||
'';
|
|
||||||
|
|
||||||
bundle = pkgs.runCommandNoCC "${name}-bundle" {} ''
|
|
||||||
mkdir build
|
|
||||||
ln -s ${msi} build/${name}.msi
|
|
||||||
${if cert != null then "ln -s ${cert} build/cert.cer" else ""}
|
|
||||||
ln -s ${installScript} build/install.ps1
|
|
||||||
mv build $out
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
makeBundle {
|
|
||||||
inherit name bundle;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
Nix cross-built packages
|
|
||||||
*/
|
|
||||||
makeCrossPkg =
|
|
||||||
{ name
|
|
||||||
, pkg
|
|
||||||
, destination ? ''C:\Program Files\${name}\''
|
|
||||||
, preInstall ? ""
|
|
||||||
, postInstall ? ""
|
|
||||||
}: let
|
|
||||||
installScript = pkgs.writeText "${name}-install-script" ''
|
|
||||||
${preInstall}
|
|
||||||
Copy-Item pkg -Destination "${destination}"
|
|
||||||
${postInstall}
|
|
||||||
'';
|
|
||||||
|
|
||||||
bundle = pkgs.runCommandNoCC "${name}-bundle" {} ''
|
|
||||||
mkdir -p build/pkg
|
|
||||||
ln -s ${pkg} build/pkg
|
|
||||||
ln -s ${installScript} build/install.ps1
|
|
||||||
mv build $out
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
makeBundle {
|
|
||||||
inherit name bundle;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,91 +0,0 @@
|
||||||
{ pkgs
|
|
||||||
, sipycoPkg
|
|
||||||
, artiqPkg
|
|
||||||
, diskImage ? (import ./build.nix { inherit pkgs; })
|
|
||||||
, qemuMem ? "2G"
|
|
||||||
, testTimeout ? 600
|
|
||||||
, testCommand ? "python -m unittest discover -v sipyco.test && python -m unittest discover -v artiq.test"
|
|
||||||
,
|
|
||||||
}:
|
|
||||||
|
|
||||||
with pkgs;
|
|
||||||
|
|
||||||
let
|
|
||||||
escape = builtins.replaceStrings [ "\\" ] [ "\\\\" ];
|
|
||||||
qemu = import ./qemu.nix {
|
|
||||||
inherit pkgs qemuMem;
|
|
||||||
};
|
|
||||||
# Double-escape because we produce a script from a shell heredoc
|
|
||||||
ssh = cmd: qemu.ssh (escape cmd);
|
|
||||||
sshUnquoted = qemu.sshWithQuotes "\"";
|
|
||||||
scp = qemu.scp;
|
|
||||||
condaEnv = "artiq-env";
|
|
||||||
tcpPorts = [ 1380 1381 1382 1383 ];
|
|
||||||
forwardedPorts =
|
|
||||||
map (
|
|
||||||
port: {
|
|
||||||
listenAddr = "192.168.1.50";
|
|
||||||
targetAddr = "192.168.1.50";
|
|
||||||
inherit port;
|
|
||||||
}
|
|
||||||
) tcpPorts;
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = "windows-test-runner";
|
|
||||||
|
|
||||||
# Dummy sources
|
|
||||||
src = pkgs.runCommandNoCC "dummy" {} "touch $out";
|
|
||||||
dontUnpack = true;
|
|
||||||
|
|
||||||
propagatedBuildInputs = qemu.inputs;
|
|
||||||
dontBuild = true;
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cat > $out/bin/run.sh << EOF
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -e -m
|
|
||||||
|
|
||||||
cp ${diskImage} c.img
|
|
||||||
|
|
||||||
${qemu.runQemu true forwardedPorts [
|
|
||||||
"-boot"
|
|
||||||
"order=c"
|
|
||||||
"-snapshot"
|
|
||||||
"-drive"
|
|
||||||
"file=c.img,index=0,media=disk,cache=unsafe"
|
|
||||||
"-display"
|
|
||||||
"none"
|
|
||||||
]} &
|
|
||||||
|
|
||||||
echo "Wait for Windows to boot"
|
|
||||||
sleep 30
|
|
||||||
${ssh "ver"}
|
|
||||||
i=0
|
|
||||||
for pkg in ${sipycoPkg}/noarch/sipyco*.tar.bz2 ${artiqPkg}/noarch/artiq*.tar.bz2 ; do
|
|
||||||
${scp "\\$pkg" "to_install\\$i.tar.bz2"}
|
|
||||||
${sshUnquoted "anaconda\\scripts\\activate ${condaEnv} && conda install to_install\\$i.tar.bz2"}
|
|
||||||
((i=i+1))
|
|
||||||
done
|
|
||||||
|
|
||||||
# Schedule a timed shutdown against hanging test runs
|
|
||||||
${ssh "shutdown -s -t ${toString testTimeout}"}
|
|
||||||
|
|
||||||
FAIL=n
|
|
||||||
( ${ssh "anaconda\\scripts\\activate ${condaEnv} && ${testCommand}"} ) || FAIL=y
|
|
||||||
|
|
||||||
# Abort timeouted shutdown
|
|
||||||
${ssh "shutdown -a"}
|
|
||||||
# Power off immediately
|
|
||||||
${ssh "shutdown -p -f"}
|
|
||||||
wait
|
|
||||||
|
|
||||||
if [ "\$FAIL" = "y" ]; then
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
EOF
|
|
||||||
chmod a+x $out/bin/run.sh
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -4,7 +4,6 @@
|
||||||
, qemuMem ? "4G"
|
, qemuMem ? "4G"
|
||||||
, windowsImage ? null
|
, windowsImage ? null
|
||||||
, autoUnattendParams ? {}
|
, autoUnattendParams ? {}
|
||||||
, packages ? []
|
|
||||||
, impureMode ? false
|
, impureMode ? false
|
||||||
, baseRtc ? "2020-04-20T14:21:42"
|
, baseRtc ? "2020-04-20T14:21:42"
|
||||||
, installCommands ? []
|
, installCommands ? []
|
||||||
|
@ -52,14 +51,9 @@ let
|
||||||
bundleInstaller = pkgs.callPackage ./bundle {};
|
bundleInstaller = pkgs.callPackage ./bundle {};
|
||||||
|
|
||||||
# Packages required to drive installation of other packages
|
# Packages required to drive installation of other packages
|
||||||
bootstrapPkgs = let
|
bootstrapPkgs =
|
||||||
winPkgs = import ./pkgs.nix { inherit pkgs; };
|
|
||||||
|
|
||||||
in
|
|
||||||
runQemuCommand "bootstrap-win-pkgs.img" ''
|
runQemuCommand "bootstrap-win-pkgs.img" ''
|
||||||
mkdir pkgs
|
mkdir pkgs
|
||||||
mkdir pkgs/bootstrap
|
|
||||||
mkdir pkgs/user
|
|
||||||
mkdir pkgs/fod
|
mkdir pkgs/fod
|
||||||
|
|
||||||
cp ${bundleInstaller} pkgs/"$(stripHash "${bundleInstaller}")"
|
cp ${bundleInstaller} pkgs/"$(stripHash "${bundleInstaller}")"
|
||||||
|
@ -71,8 +65,6 @@ let
|
||||||
# SSH setup script goes here because windows XML parser sucks
|
# SSH setup script goes here because windows XML parser sucks
|
||||||
cp ${autounattend.setupScript} pkgs/ssh-setup.ps1
|
cp ${autounattend.setupScript} pkgs/ssh-setup.ps1
|
||||||
|
|
||||||
${lib.concatStringsSep "\n" (builtins.map (x: ''cp ${x} pkgs/bootstrap/"$(stripHash "${x}")"'') packages)}
|
|
||||||
|
|
||||||
virt-make-fs --partition --type=fat pkgs/ $out
|
virt-make-fs --partition --type=fat pkgs/ $out
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue