2021-02-23 17:55:52 +00:00
use strict ;
use Cwd ;
use Setup ;
( my $ datadir , my $ pgsql ) = test_init ( ) ;
require Hydra::Schema ;
require Hydra::Model::DB ;
use Test2::V0 ;
my $ db = Hydra::Model::DB - > new ;
hydra_setup ( $ db ) ;
# Test jobset with 2 jobs, one has parameter of succeeded build of the other
my $ jobset = createJobsetWithOneInput ( "build-output-as-input" , "build-output-as-input.nix" , "build1" , "build" , "build1" ) ;
ok ( evalSucceeds ( $ jobset ) , "Evaluating jobs/build-output-as-input.nix should exit with return code 0" ) ;
2021-02-23 18:23:18 +00:00
is ( nrQueuedBuildsForJobset ( $ jobset ) , 1 , "Evaluating jobs/build-output-as-input.nix for first time should result in 1 build in queue" ) ;
2021-02-23 17:55:52 +00:00
for my $ build ( queuedBuildsForJobset ( $ jobset ) ) {
2021-02-23 18:23:18 +00:00
ok ( runBuild ( $ build ) , "Build '" . $ build - > job . "' from jobs/build-output-as-input.nix should exit with code 0" ) ;
2021-02-23 17:55:52 +00:00
my $ newbuild = $ db - > resultset ( 'Builds' ) - > find ( $ build - > id ) ;
2021-02-23 18:23:18 +00:00
is ( $ newbuild - > finished , 1 , "Build '" . $ build - > job . "' from jobs/build-output-as-input.nix should be finished." ) ;
is ( $ newbuild - > buildstatus , 0 , "Build '" . $ build - > job . "' from jobs/build-output-as-input.nix should have buildstatus 0." ) ;
2021-02-23 17:55:52 +00:00
}
ok ( evalSucceeds ( $ jobset ) , "Evaluating jobs/build-output-as-input.nix for second time should exit with return code 0" ) ;
2021-02-23 18:23:18 +00:00
is ( nrQueuedBuildsForJobset ( $ jobset ) , 1 , "Evaluating jobs/build-output-as-input.nix for second time after building build1 should result in 1 build in queue" ) ;
2021-02-23 17:55:52 +00:00
for my $ build ( queuedBuildsForJobset ( $ jobset ) ) {
ok ( runBuild ( $ build ) , "Build '" . $ build - > job . "' from jobs/basic.nix should exit with code 0" ) ;
my $ newbuild = $ db - > resultset ( 'Builds' ) - > find ( $ build - > id ) ;
2021-02-23 18:23:18 +00:00
is ( $ newbuild - > finished , 1 , "Build '" . $ build - > job . "' from jobs/build-output-as-input.nix should be finished." ) ;
is ( $ newbuild - > buildstatus , 0 , "Build '" . $ build - > job . "' from jobs/build-output-as-input.nix should have buildstatus 0." ) ;
2021-02-23 17:55:52 +00:00
}
done_testing ;