WQ2VQ7H3CTHM47EOW3F3BB2OUAI7ZXX5FBBAD2DODQOFO5LRM4WAC WGDX4QRICBVWJWAC6QYZ7KJWQHAYBJDF4HCAOOZWELKHNYV6GFIQC ZIIXICG7TBYQAGTNXGZXLLPVRLZ5VU3RCDDUAD3D7PHZZON4U7MQC XWNMTW6PTDNDSGS7LSJUUS6VJVLS73Q2VTBNUJWC556BW5CO7JLAC 55QLDPQDRJAK7F7YPSE2XOQIKWNKNEJD7Q6ZUYFTSGKXLP6ZP5SAC LOHWNXEJKUPDI33VZMC2XLPXO7TZ2Y3AJTFJPJI2ZPHJOMLUUPRAC T4LLYESZ2HUXSLKZ6GNBLVWUVG7R5IDFHYHYO773QIZ6QTOOXR2AC IZYR3KTL4M5OERLZM4LAC6N6TWZLQXMRVQIFOCIKMDQU3F2E7FHQC 6CZHII3QFWOCQA5ELMIPKVOQSZMEHNCWQ3KNSKDQL5DTAGFSSZVQC 7C6HSXUQ6HFILY35VPZWCJOVBAL7IJ2QXOU2X5DTIFJ6FQ2RHOQAC A3A2O37IM4TNOKFZXJL527R5NLSB5ZNOOY7HJ7VASSVEJTLINBIAC LZVO64YG43JD7YMZSCTZNOBS5ROZA4FMPKJW2YOMHX2V5PTGBVWQC WDNDBFSG2TVSZOP7YYWT7ZSN6V4XTXDSDA7F23KNT3DTOJDHY3GAC UGA45FNCYAHX77QI3MTMSRF676N2BUW2ZUUI4OZCI2C3EJOYKY3QC YI3BZG5NWMKBT7T2HEOHVHSZBQ5KPDWSI3VRYOMQ346LRFB4MR2AC hydraServer = hydraPkg:{ config, pkgs, ... }:{ imports = [ ./hydra-module.nix ];virtualisation.memorySize = 1024;services.hydra.enable = true;services.hydra.package = hydraPkg;services.hydra.hydraURL = "http://hydra.example.org";services.hydra.notificationSender = "admin@hydra.example.org";services.postgresql.enable = true;services.postgresql.package = pkgs.postgresql92;
machine ={ config, pkgs, ... }:{ services.postgresql.enable = true;services.postgresql.package = pkgs.postgresql92;environment.systemPackages = [ hydra ];};
machine = hydraServer (builtins.getAttr system build); # build.${system}
$machine->waitForJob("postgresql");# Initialise the database and the state.$machine->mustSucceed( "createdb -O root hydra", "HYDRA_DBI='${dbi}' hydra-init", "HYDRA_DBI='${dbi}' hydra-init" # again to test idempotence, "mkdir /var/lib/hydra");# Start the web interface.$machine->mustSucceed("HYDRA_DATA=/var/lib/hydra HYDRA_DBI='${dbi}' hydra-server >&2 &");
$machine->waitForJob("hydra-init");$machine->waitForJob("hydra-server");$machine->waitForJob("hydra-evaluator");$machine->waitForJob("hydra-queue-runner");
machine ={ config, pkgs, ... }:{ services.postgresql.enable = true;services.postgresql.package = pkgs.postgresql92;environment.systemPackages = [ hydra pkgs.perlPackages.LWP pkgs.perlPackages.JSON ];virtualisation.memorySize = 2047;boot.kernelPackages = pkgs.linuxPackages_3_10;};
machine = hydraServer (builtins.getAttr system build); # build.${system}
# Initialise the database and the state.$machine->mustSucceed( "createdb -O root hydra", "HYDRA_DBI='${dbi}' hydra-init", "HYDRA_DBI='${dbi}' hydra-create-user root --email-address 'e.dolstra\@tudelft.nl' --password foobar --role admin", "mkdir /var/lib/hydra", "mkdir /run/jobset", "chmod 755 /run/jobset"
# Create an admin account and some other state.$machine->succeed( "su hydra -c \"hydra-create-user root --email-address 'e.dolstra\@tudelft.nl' --password foobar --role admin\"", "mkdir /run/jobset /tmp/nix", "chmod 755 /run/jobset /tmp/nix"
# Start the web interface.$machine->mustSucceed("NIX_STORE_DIR=/run/nix NIX_LOG_DIR=/run/nix/var/log/nix NIX_STATE_DIR=/run/nix/var/nix HYDRA_DATA=/var/lib/hydra HYDRA_DBI='${dbi}' LOGNAME=root DBIC_TRACE=1 hydra-server -d >&2 &");
# Start the web interface with some weird settings.$machine->succeed("systemctl stop hydra-server hydra-evaluator hydra-queue-runner");$machine->mustSucceed("su hydra -c 'NIX_STORE_DIR=/tmp/nix/store NIX_LOG_DIR=/tmp/nix/var/log/nix NIX_STATE_DIR=/tmp/nix/var/nix DBIC_TRACE=1 hydra-server -d' >&2 &");
$machine->mustSucceed("cd /tmp && LOGNAME=root AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar HYDRA_DBI='dbi:Pg:dbname=hydra;user=root;' HYDRA_CONFIG=${./tests/s3-backup-test.config} perl -I ${hydra}/libexec/hydra/lib -I ${hydra.perlDeps}/lib/perl5/site_perl ./s3-backup-test.pl >&2");
$machine->succeed("cd /tmp && LOGNAME=root AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar HYDRA_DBI='dbi:Pg:dbname=hydra;user=root;' HYDRA_CONFIG=${./tests/s3-backup-test.config} perl -I ${hydra}/libexec/hydra/lib -I ${hydra.perlDeps}/lib/perl5/site_perl ./s3-backup-test.pl >&2");
system("LOGNAME=root NIX_STORE_DIR=/run/nix/store NIX_LOG_DIR=/run/nix/var/log/nix NIX_STATE_DIR=/run/nix/var/nix HYDRA_DATA=/var/lib/hydra HYDRA_DBI='dbi:Pg:dbname=hydra;user=root;' hydra-evaluator sample default");
system("NIX_STORE_DIR=/tmp/nix/store NIX_LOG_DIR=/tmp/nix/var/log/nix NIX_STATE_DIR=/tmp/nix/var/nix hydra-evaluator sample default");
system("echo >> /run/jobset/default.nix; LOGNAME=root NIX_STORE_DIR=/run/nix/store NIX_LOG_DIR=/run/nix/var/log/nix NIX_STATE_DIR=/run/nix/var/nix HYDRA_DATA=/var/lib/hydra HYDRA_DBI='dbi:Pg:dbname=hydra;user=root;' hydra-evaluator sample default");
system("echo >> /run/jobset/default.nix; NIX_STORE_DIR=/tmp/nix/store NIX_LOG_DIR=/tmp/nix/var/log/nix NIX_STATE_DIR=/tmp/nix/var/nix hydra-evaluator sample default");
ok($build->{buildoutputs}->{out}->{path} =~ /^\/run\/nix\/store\/[a-zA-Z0-9]{32}-job$/, "The build's outpath is in the nix store and named 'job'");
ok($build->{buildoutputs}->{out}->{path} =~ /^\/tmp\/nix\/store\/[a-zA-Z0-9]{32}-job$/, "The build's outpath is in the nix store and named 'job'");