View | Details | Raw Unified | Return to bug 39877
Collapse All | Expand All

(-)a/Koha/Devel/CI/IncrementalRuns.pm (-5 / +13 lines)
Lines 84-89 sub new { Link Here
84
    };
84
    };
85
85
86
    if ( $self->{incremental_run} ) {
86
    if ( $self->{incremental_run} ) {
87
88
        my $codename = qx{lsb_release -s -c 2> /dev/null};
89
        die "Cannot use increment runs if codename is not set (lsb_release not available?)" unless $codename;
90
91
        chomp $codename;
92
87
        unless ( $self->{test_name} ) {
93
        unless ( $self->{test_name} ) {
88
            my @caller_info     = caller();
94
            my @caller_info     = caller();
89
            my $script_filename = $caller_info[1];
95
            my $script_filename = $caller_info[1];
Lines 92-104 sub new { Link Here
92
            $self->{test_name} =~ s|\..*$||g;
98
            $self->{test_name} =~ s|\..*$||g;
93
        }
99
        }
94
100
101
        $self->{test_dir} = sprintf "%s/%s", $self->{test_name}, $codename;
102
95
        if ( $self->{git_repo_dir} && $self->{repo_url} ) {
103
        if ( $self->{git_repo_dir} && $self->{repo_url} ) {
96
            unless ( -d $self->{git_repo_dir} ) {
104
            unless ( -d $self->{git_repo_dir} ) {
97
                qx{git clone $self->{repo_url} $self->{git_repo_dir}};
105
                qx{git clone $self->{repo_url} $self->{git_repo_dir}};
98
            }
106
            }
99
            qx{git -C $self->{git_repo_dir} fetch origin};
107
            qx{git -C $self->{git_repo_dir} fetch origin};
100
108
101
            make_path("$self->{git_repo_dir}/$self->{test_name}");
109
            make_path("$self->{git_repo_dir}/$self->{test_dir}");
102
        }
110
        }
103
    }
111
    }
104
112
Lines 122-128 sub get_files_to_test { Link Here
122
    my $no_history;
130
    my $no_history;
123
    if ( $self->{incremental_run} ) {
131
    if ( $self->{incremental_run} ) {
124
        my @koha_commit_history   = qx{git log --pretty=format:"%h"};
132
        my @koha_commit_history   = qx{git log --pretty=format:"%h"};
125
        my @tested_commit_history = qx{ls $self->{git_repo_dir}/$self->{test_name}};
133
        my @tested_commit_history = qx{ls $self->{git_repo_dir}/$self->{test_dir}};
126
        chomp for @koha_commit_history, @tested_commit_history;
134
        chomp for @koha_commit_history, @tested_commit_history;
127
        if (@tested_commit_history) {
135
        if (@tested_commit_history) {
128
            my $last_build_commit = firstval {
136
            my $last_build_commit = firstval {
Lines 131-137 sub get_files_to_test { Link Here
131
            }
139
            }
132
            @koha_commit_history;
140
            @koha_commit_history;
133
            if ($last_build_commit) {
141
            if ($last_build_commit) {
134
                @files = @{ from_json( read_file("$self->{git_repo_dir}/$self->{test_name}/$last_build_commit") ) };
142
                @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" );
143
                push @files, $dev_files->ls_files( $filetype, "$last_build_commit HEAD" );
136
            } else {
144
            } else {
137
145
Lines 164-170 sub report_results { Link Here
164
    my $commit_id = qx{git rev-parse --short HEAD};
172
    my $commit_id = qx{git rev-parse --short HEAD};
165
    chomp $commit_id;
173
    chomp $commit_id;
166
174
167
    my $failure_file = "$self->{git_repo_dir}/$self->{test_name}/$commit_id";
175
    my $failure_file = "$self->{git_repo_dir}/$self->{test_dir}/$commit_id";
168
    my $failures     = [
176
    my $failures     = [
169
        sort map {
177
        sort map {
170
            my ( $file, $exit_code ) = ( $_, $results->{$_} );
178
            my ( $file, $exit_code ) = ( $_, $results->{$_} );
Lines 175-181 sub report_results { Link Here
175
    write_file( $failure_file, to_json($failures) );
183
    write_file( $failure_file, to_json($failures) );
176
184
177
    qx{git -C $self->{git_repo_dir} add $failure_file};
185
    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}"};
186
    qx{git -C $self->{git_repo_dir} commit -m "$commit_id - $self->{test_dir}"};
179
    ( my $push_domain = $self->{repo_url} ) =~ s{^https://}{};
187
    ( my $push_domain = $self->{repo_url} ) =~ s{^https://}{};
180
    my $push_url = "https://gitlab-ci-token:$self->{token}\@$push_domain";
188
    my $push_url = "https://gitlab-ci-token:$self->{token}\@$push_domain";
181
    qx{git -C $self->{git_repo_dir} push $push_url main};
189
    qx{git -C $self->{git_repo_dir} push $push_url main};
(-)a/xt/perltidy.t (-3 / +3 lines)
Lines 2-15 Link Here
2
use Modern::Perl;
2
use Modern::Perl;
3
use Test::PerlTidy;
3
use Test::PerlTidy;
4
use Test::More;
4
use Test::More;
5
use Test::NoWarnings;
6
5
7
use Koha::Devel::CI::IncrementalRuns;
6
use Koha::Devel::CI::IncrementalRuns;
8
7
9
my $ci    = Koha::Devel::CI::IncrementalRuns->new( { context => 'tidy' } );
8
my $ci    = Koha::Devel::CI::IncrementalRuns->new( { context => 'tidy' } );
10
my @files = $ci->get_files_to_test('pl');
9
my @files = $ci->get_files_to_test('pl');
11
10
12
plan tests => scalar(@files) + 1;
11
@files = qw(Koha.pm mainpage.pl Koha/Patrons.pm);
12
13
plan tests => scalar(@files);
13
14
14
my %results;
15
my %results;
15
for my $file (@files) {
16
for my $file (@files) {
16
- 

Return to bug 39877