Skip to content

Commit ad78558

Browse files
authored
Merge pull request #6812 from Martchus/git-clone-distri
Avoid creation of git_clone tasks for jobs with empty DISTRI
2 parents a802d1d + 43d61f8 commit ad78558

File tree

5 files changed

+18
-12
lines changed

5 files changed

+18
-12
lines changed

lib/OpenQA/Schema/Result/ScheduledProducts.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ sub _create_jobs_in_database ($self, $jobs, $failed_job_info, $skip_chained_deps
308308
} keys %tmp_downloads;
309309
my $gru = OpenQA::App->singleton->gru;
310310
$gru->enqueue_download_jobs(\%downloads, $minion_ids);
311-
$gru->enqueue_git_clones(\%clones, $successful_job_ids, $minion_ids) if keys %clones;
311+
$gru->enqueue_git_clones(\%clones, $successful_job_ids, $minion_ids);
312312
}
313313

314314
=over 4

lib/OpenQA/Utils.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,7 @@ sub create_downloads_list ($job_settings) {
537537
}
538538

539539
sub create_git_clone_list ($job_settings, $clones = {}) {
540-
my $distri = $job_settings->{DISTRI};
540+
return $clones unless my $distri = $job_settings->{DISTRI};
541541
my $config = OpenQA::App->singleton->config->{'scm git'};
542542
if ($config->{git_auto_update} eq 'yes') {
543543
# Potential existing git clones to update without having CASEDIR or NEEDLES_DIR

lib/OpenQA/WebAPI/Controller/API/V1/Job.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ sub _create_job ($self, $global_params, $job_suffix, $job_specific_params, $mini
346346
push @{$downloads->{$_}}, [$job_id] for keys %$downloads;
347347
$self->gru->enqueue_download_jobs($downloads, $minion_ids);
348348
my $clones = create_git_clone_list($job_settings);
349-
$self->gru->enqueue_git_clones($clones, [$job_id], $minion_ids) if keys %$clones;
349+
$self->gru->enqueue_git_clones($clones, [$job_id], $minion_ids);
350350
return $job_id;
351351
}
352352

t/14-grutasks-git.t

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use FindBin;
99
use lib "$FindBin::Bin/lib", "$FindBin::Bin/../external/os-autoinst-common/lib";
1010
use OpenQA::Task::Git::Clone;
1111
use OpenQA::Git::ServerAvailability qw(report_server_unavailable report_server_available SKIP FAIL);
12+
use OpenQA::Utils qw(create_git_clone_list);
1213
require OpenQA::Test::Database;
1314
use OpenQA::Test::Utils qw(run_gru_job perform_minion_jobs);
1415
use OpenQA::Test::TimeLimit '20';
@@ -335,6 +336,16 @@ subtest 'git_update_all' => sub {
335336
if $gru_task;
336337
};
337338

339+
subtest 'create_git_clone_list' => sub {
340+
my (%clones, %job_settings);
341+
create_git_clone_list(\%job_settings, \%clones);
342+
is_deeply \%clones, {}, 'no clones added without distri' or always_explain \%clones;
343+
$job_settings{DISTRI} = 'some-distri';
344+
create_git_clone_list(\%job_settings, \%clones);
345+
my %expected_clones = map { ("t/data/openqa/share/tests/some-distri$_" => undef) } '', '/needles';
346+
is_deeply \%clones, \%expected_clones, 'clones added for distri' or always_explain \%clones;
347+
};
348+
338349
subtest 'enqueue_git_clones' => sub {
339350
my $minion = $t->app->minion;
340351
my $clones = {x => 'y'};

t/api/04-jobs.t

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1698,6 +1698,7 @@ subtest 'handle git_clone without CASEDIR' => sub {
16981698
my $params = {
16991699
TEST => 'handle_git_clone',
17001700
MACHINE => '64bit',
1701+
DISTRI => 'opensuse',
17011702
};
17021703
$t->post_ok('/api/v1/jobs', form => $params)->status_is(200);
17031704

@@ -1712,15 +1713,9 @@ subtest 'handle git_clone without CASEDIR' => sub {
17121713
is $task, 'git_clone', 'git_clone task was scheduled';
17131714
push @gru_task_values, $gru_task->args;
17141715
}
1715-
is_deeply \@gru_task_values,
1716-
[
1717-
[
1718-
{
1719-
path('t/data/openqa/share/tests')->realpath => undef,
1720-
path('t/data/openqa/share/tests/needles')->realpath => undef,
1721-
}]
1722-
],
1723-
'the git_clone gru tasks was created correctly';
1716+
my %expected_values = map { path("t/data/openqa/share/tests/opensuse$_")->realpath => undef } '', '/needles';
1717+
is_deeply \@gru_task_values, [[\%expected_values]], 'the git_clone gru tasks was created correctly'
1718+
or always_explain \@gru_task_values;
17241719

17251720
subtest 'enqueue git_clone for job restarts' => sub {
17261721
$job->update({state => 'done'});

0 commit comments

Comments
 (0)