diff options
author | Douwe Maan <douwe@gitlab.com> | 2015-12-21 16:25:09 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2015-12-21 16:25:09 +0000 |
commit | 058f27ad2ac6371ff12fb7245215115c1a7cc2c9 (patch) | |
tree | d91acf0968667d9e7571d2a48a1c707db650e2bb | |
parent | 545a943468c4a178eaedb13a9aed5d3afdaecd05 (diff) | |
parent | 5a3237fd8dca49f073f0e50ab63fd18d40fc49d6 (diff) | |
download | gitlab-ce-058f27ad2ac6371ff12fb7245215115c1a7cc2c9.tar.gz |
Merge branch 'coverage-regex' into 'master'
Fix build coverage regex matching to allow captures.
Fixes #2644
/cc @DouweM
See merge request !2138
-rw-r--r-- | app/models/ci/build.rb | 3 | ||||
-rw-r--r-- | spec/models/build_spec.rb | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index 6d9cdb95295..470b97a3c0f 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -170,7 +170,8 @@ module Ci def extract_coverage(text, regex) begin - matches = text.gsub(Regexp.new(regex)).to_a.last + matches = text.scan(Regexp.new(regex)).last + matches = matches.last if matches.kind_of?(Array) coverage = matches.gsub(/\d+(\.\d+)?/).first if coverage.present? diff --git a/spec/models/build_spec.rb b/spec/models/build_spec.rb index 96b6f1dbca6..e3880cd9cfe 100644 --- a/spec/models/build_spec.rb +++ b/spec/models/build_spec.rb @@ -189,6 +189,12 @@ describe Ci::Build, models: true do it { is_expected.to eq(98.29) } end + + context 'using a regex capture' do + subject { build.extract_coverage('TOTAL 9926 3489 65%', 'TOTAL\s+\d+\s+\d+\s+(\d{1,3}\%)') } + + it { is_expected.to eq(65) } + end end describe :variables do |