Use Coveralls Github Action to send test reports
Coveralls stopped working back in July when we reached build number 3790 because back when we used Travis we created builds from numbers 3791 to 35700. After trying to change the numbers in several ways, all of them resulting in a "No build matching CI build number" message, we're trying the Github Action provided by Coveralls instead. In order to make it work, we need to add the `simplecov-lcov` gem and generate the report at `coverage/lcov.info`. Note that, for some reason, `simplecov-lcov` doesn't seem to depend on `simplecov` and we need `simplecov` 0.18 or later, so we're manually adding this dependency as well.
This commit is contained in:
19
.github/workflows/tests.yml
vendored
19
.github/workflows/tests.yml
vendored
@@ -23,10 +23,7 @@ jobs:
|
||||
POSTGRES_USER: consul
|
||||
POSTGRES_PASSWORD: ""
|
||||
env:
|
||||
CI_BUILD_NUMBER: ${{ github.run_number }}
|
||||
COVERALLS_FLAG_NAME: run-${{ matrix.ci_node_index }}
|
||||
COVERALLS_PARALLEL: true
|
||||
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
||||
TEST_COVERAGE: 1
|
||||
PGUSER: consul
|
||||
POSTGRES_HOST: postgres
|
||||
RAILS_ENV: test
|
||||
@@ -56,6 +53,12 @@ jobs:
|
||||
KNAPSACK_PRO_FIXED_QUEUE_SPLIT: true
|
||||
KNAPSACK_PRO_LOG_LEVEL: info
|
||||
run: bin/knapsack_pro_rspec
|
||||
- name: Coveralls Parallel
|
||||
uses: coverallsapp/github-action@master
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
flag-name: run-${{ matrix.ci_node_index }}
|
||||
parallel: true
|
||||
- name: Upload screenshots
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
@@ -67,9 +70,9 @@ jobs:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest
|
||||
needs: tests
|
||||
env:
|
||||
CI_BUILD_NUMBER: ${{ github.run_number }}
|
||||
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
||||
steps:
|
||||
- name: Finish coveralls
|
||||
run: curl -k https://coveralls.io/webhook?repo_token=$COVERALLS_REPO_TOKEN -d "payload[build_num]=$CI_BUILD_NUMBER&payload[status]=done"
|
||||
uses: coverallsapp/github-action@master
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
parallel-finished: true
|
||||
|
||||
@@ -14,7 +14,7 @@ tests:
|
||||
variables:
|
||||
POSTGRES_USER: consul
|
||||
RAILS_ENV: test
|
||||
COVERALLS: 1
|
||||
TEST_COVERAGE: 1
|
||||
parallel: 5
|
||||
script:
|
||||
- apt-get update && apt-get install -y nodejs chromium
|
||||
|
||||
3
Gemfile
3
Gemfile
@@ -86,10 +86,11 @@ end
|
||||
group :test do
|
||||
gem "capybara", "~> 3.37.1"
|
||||
gem "capybara-webmock", "~> 0.6.0"
|
||||
gem "coveralls", "~> 0.8.23", require: false
|
||||
gem "email_spec", "~> 2.2.0"
|
||||
gem "rspec-rails", "~> 5.1.2"
|
||||
gem "selenium-webdriver", "~> 3.142"
|
||||
gem "simplecov", "~> 0.21.2", require: false
|
||||
gem "simplecov-lcov", "~> 0.8.0", require: false
|
||||
gem "webdrivers", "~> 4.7.0"
|
||||
end
|
||||
|
||||
|
||||
26
Gemfile.lock
26
Gemfile.lock
@@ -159,12 +159,6 @@ GEM
|
||||
execjs
|
||||
coffee-script-source (1.12.2)
|
||||
concurrent-ruby (1.1.10)
|
||||
coveralls (0.8.23)
|
||||
json (>= 1.8, < 3)
|
||||
simplecov (~> 0.16.1)
|
||||
term-ansicolor (~> 1.3)
|
||||
thor (>= 0.19.4, < 2.0)
|
||||
tins (~> 1.6)
|
||||
crass (1.0.6)
|
||||
daemons (1.4.1)
|
||||
dalli (3.2.3)
|
||||
@@ -183,7 +177,7 @@ GEM
|
||||
devise-security (0.16.0)
|
||||
devise (>= 4.3.0, < 5.0)
|
||||
diff-lcs (1.5.0)
|
||||
docile (1.3.2)
|
||||
docile (1.4.0)
|
||||
dry-configurable (0.7.0)
|
||||
concurrent-ruby (~> 1.0)
|
||||
dry-container (0.6.0)
|
||||
@@ -619,11 +613,13 @@ GEM
|
||||
selenium-webdriver (3.142.7)
|
||||
childprocess (>= 0.5, < 4.0)
|
||||
rubyzip (>= 1.2.2)
|
||||
simplecov (0.16.1)
|
||||
simplecov (0.21.2)
|
||||
docile (~> 1.1)
|
||||
json (>= 1.8, < 3)
|
||||
simplecov-html (~> 0.10.0)
|
||||
simplecov-html (0.10.2)
|
||||
simplecov-html (~> 0.11)
|
||||
simplecov_json_formatter (~> 0.1)
|
||||
simplecov-html (0.12.3)
|
||||
simplecov-lcov (0.8.0)
|
||||
simplecov_json_formatter (0.1.4)
|
||||
sitemap_generator (6.3.0)
|
||||
builder (~> 3.0)
|
||||
smart_properties (1.17.0)
|
||||
@@ -647,9 +643,6 @@ GEM
|
||||
sshkit (1.21.2)
|
||||
net-scp (>= 1.1.2)
|
||||
net-ssh (>= 2.8.0)
|
||||
sync (0.5.0)
|
||||
term-ansicolor (1.7.1)
|
||||
tins (~> 1.0)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
terrapin (0.6.0)
|
||||
@@ -657,8 +650,6 @@ GEM
|
||||
thor (1.2.1)
|
||||
thread_safe (0.3.6)
|
||||
tilt (2.0.10)
|
||||
tins (1.25.0)
|
||||
sync
|
||||
tomlrb (1.3.0)
|
||||
translator-text (0.1.0)
|
||||
dry-struct (~> 0.5.0)
|
||||
@@ -735,7 +726,6 @@ DEPENDENCIES
|
||||
caxlsx_rails (~> 0.6.3)
|
||||
ckeditor (~> 4.3.0)
|
||||
cocoon (~> 1.2.15)
|
||||
coveralls (~> 0.8.23)
|
||||
daemons (~> 1.4.1)
|
||||
dalli (~> 3.2.3)
|
||||
delayed_job_active_record (~> 4.1.7)
|
||||
@@ -800,6 +790,8 @@ DEPENDENCIES
|
||||
savon (~> 2.13.0)
|
||||
scss_lint (~> 0.59.0)
|
||||
selenium-webdriver (~> 3.142)
|
||||
simplecov (~> 0.21.2)
|
||||
simplecov-lcov (~> 0.8.0)
|
||||
sitemap_generator (~> 6.3.0)
|
||||
social-share-button (~> 1.2.4)
|
||||
spring (~> 2.1.1)
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
ENV["RAILS_ENV"] ||= "test"
|
||||
if ENV["COVERALLS_REPO_TOKEN"]
|
||||
require "coveralls"
|
||||
Coveralls.wear!("rails")
|
||||
if ENV["TEST_COVERAGE"]
|
||||
require "simplecov"
|
||||
require "simplecov-lcov"
|
||||
SimpleCov::Formatter::LcovFormatter.config.report_with_single_file = true
|
||||
SimpleCov::Formatter::LcovFormatter.config do |config|
|
||||
config.output_directory = "coverage"
|
||||
config.lcov_file_name = "lcov.info"
|
||||
end
|
||||
SimpleCov.formatter = SimpleCov::Formatter::LcovFormatter
|
||||
SimpleCov.start("rails")
|
||||
end
|
||||
require File.expand_path("../../config/environment", __FILE__)
|
||||
abort("The Rails environment is running in production mode!") if Rails.env.production?
|
||||
|
||||
Reference in New Issue
Block a user