|
Lines 84-89
sub new {
Link Here
|
| 84 |
}; |
84 |
}; |
| 85 |
|
85 |
|
| 86 |
if ( $self->{incremental_run} ) { |
86 |
if ( $self->{incremental_run} ) { |
|
|
87 |
|
| 88 |
die "Cannot use increment runs if `KOHA_IMAGE` environment variable is not set" unless $ENV{KOHA_IMAGE}; |
| 89 |
|
| 87 |
unless ( $self->{test_name} ) { |
90 |
unless ( $self->{test_name} ) { |
| 88 |
my @caller_info = caller(); |
91 |
my @caller_info = caller(); |
| 89 |
my $script_filename = $caller_info[1]; |
92 |
my $script_filename = $caller_info[1]; |
|
Lines 92-104
sub new {
Link Here
|
| 92 |
$self->{test_name} =~ s|\..*$||g; |
95 |
$self->{test_name} =~ s|\..*$||g; |
| 93 |
} |
96 |
} |
| 94 |
|
97 |
|
|
|
98 |
$self->{test_dir} = $args->{git_repo_dir} . '/' . $ENV{KOHA_IMAGE} . '/' . $args->{test_name}; |
| 99 |
|
| 95 |
if ( $self->{git_repo_dir} && $self->{repo_url} ) { |
100 |
if ( $self->{git_repo_dir} && $self->{repo_url} ) { |
| 96 |
unless ( -d $self->{git_repo_dir} ) { |
101 |
unless ( -d $self->{git_repo_dir} ) { |
| 97 |
qx{git clone $self->{repo_url} $self->{git_repo_dir}}; |
102 |
qx{git clone $self->{repo_url} $self->{git_repo_dir}}; |
| 98 |
} |
103 |
} |
| 99 |
qx{git -C $self->{git_repo_dir} fetch origin}; |
104 |
qx{git -C $self->{git_repo_dir} fetch origin}; |
| 100 |
|
105 |
|
| 101 |
make_path("$self->{git_repo_dir}/$self->{test_name}"); |
106 |
make_path("$self->{git_repo_dir}/$self->{test_dir}"); |
| 102 |
} |
107 |
} |
| 103 |
} |
108 |
} |
| 104 |
|
109 |
|
|
Lines 122-128
sub get_files_to_test {
Link Here
|
| 122 |
my $no_history; |
127 |
my $no_history; |
| 123 |
if ( $self->{incremental_run} ) { |
128 |
if ( $self->{incremental_run} ) { |
| 124 |
my @koha_commit_history = qx{git log --pretty=format:"%h"}; |
129 |
my @koha_commit_history = qx{git log --pretty=format:"%h"}; |
| 125 |
my @tested_commit_history = qx{ls $self->{git_repo_dir}/$self->{test_name}}; |
130 |
my @tested_commit_history = qx{ls $self->{git_repo_dir}/$self->{test_die}}; |
| 126 |
chomp for @koha_commit_history, @tested_commit_history; |
131 |
chomp for @koha_commit_history, @tested_commit_history; |
| 127 |
if (@tested_commit_history) { |
132 |
if (@tested_commit_history) { |
| 128 |
my $last_build_commit = firstval { |
133 |
my $last_build_commit = firstval { |
|
Lines 131-137
sub get_files_to_test {
Link Here
|
| 131 |
} |
136 |
} |
| 132 |
@koha_commit_history; |
137 |
@koha_commit_history; |
| 133 |
if ($last_build_commit) { |
138 |
if ($last_build_commit) { |
| 134 |
@files = @{ from_json( read_file("$self->{git_repo_dir}/$self->{test_name}/$last_build_commit") ) }; |
139 |
@files = @{ from_json( read_file("$self->{git_repo_dir}/$self->{test_dir}/$last_build_commit") ) }; |
| 135 |
push @files, $dev_files->ls_files( $filetype, "$last_build_commit HEAD" ); |
140 |
push @files, $dev_files->ls_files( $filetype, "$last_build_commit HEAD" ); |
| 136 |
} else { |
141 |
} else { |
| 137 |
|
142 |
|
|
Lines 164-170
sub report_results {
Link Here
|
| 164 |
my $commit_id = qx{git rev-parse --short HEAD}; |
169 |
my $commit_id = qx{git rev-parse --short HEAD}; |
| 165 |
chomp $commit_id; |
170 |
chomp $commit_id; |
| 166 |
|
171 |
|
| 167 |
my $failure_file = "$self->{git_repo_dir}/$self->{test_name}/$commit_id"; |
172 |
my $failure_file = "$self->{git_repo_dir}/$self->{test_dir}/$commit_id"; |
| 168 |
my $failures = [ |
173 |
my $failures = [ |
| 169 |
sort map { |
174 |
sort map { |
| 170 |
my ( $file, $exit_code ) = ( $_, $results->{$_} ); |
175 |
my ( $file, $exit_code ) = ( $_, $results->{$_} ); |
|
Lines 175-181
sub report_results {
Link Here
|
| 175 |
write_file( $failure_file, to_json($failures) ); |
180 |
write_file( $failure_file, to_json($failures) ); |
| 176 |
|
181 |
|
| 177 |
qx{git -C $self->{git_repo_dir} add $failure_file}; |
182 |
qx{git -C $self->{git_repo_dir} add $failure_file}; |
| 178 |
qx{git -C $self->{git_repo_dir} commit -m "$commit_id - $self->{test_name}"}; |
183 |
qx{git -C $self->{git_repo_dir} commit -m "$commit_id - $self->{test_dir}"}; |
| 179 |
( my $push_domain = $self->{repo_url} ) =~ s{^https://}{}; |
184 |
( my $push_domain = $self->{repo_url} ) =~ s{^https://}{}; |
| 180 |
my $push_url = "https://gitlab-ci-token:$self->{token}\@$push_domain"; |
185 |
my $push_url = "https://gitlab-ci-token:$self->{token}\@$push_domain"; |
| 181 |
qx{git -C $self->{git_repo_dir} push $push_url main}; |
186 |
qx{git -C $self->{git_repo_dir} push $push_url main}; |
| 182 |
- |
|
|