Skip to content

Commit

Permalink
Track coverage while installing solidus
Browse files Browse the repository at this point in the history
  • Loading branch information
elia committed Jan 3, 2024
1 parent 4c635fe commit b76d1a8
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 0 deletions.
14 changes: 14 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ commands:
- run:
name: "Prepare the rails application"
command: |
cp core/spec/solidus_install_coverage.rb /tmp/solidus_install_coverage.rb
cd /tmp
test -d my_app || (gem install rails -v "< 7.1" && gem install solidus)
test -d my_app || rails new my_app --skip-git
Expand All @@ -165,9 +166,16 @@ commands:
name: "Run `solidus:install` with `<<parameters.flags>>`"
command: |
cd /tmp/my_app
bundle add gem simplecov simplecov-cobertura --require=false
bundle add solidus --path "$(ruby -e"puts File.expand_path ENV['CIRCLE_WORKING_DIRECTORY']")"
unset RAILS_ENV # avoid doing everything on the test environment
cat /tmp/solidus_install_coverage.rb >> config/boot.rb
bin/rails generate solidus:install --auto-accept <<parameters.flags>>
- run:
name: Report Coverage
command: |
cd /tmp/my_app
bundle exec ruby /tmp/solidus_install_coverage.rb
test_page:
parameters:
Expand Down Expand Up @@ -236,6 +244,10 @@ jobs:
executor:
name: sqlite
ruby: "3.0"
environment:
COVERAGE: "true"
COVERAGE_DIR: /tmp/coverage
DISABLE_ACTIVE_STORAGE: false
steps:
- checkout
- run:
Expand Down Expand Up @@ -264,6 +276,8 @@ jobs:
name: "Ensure solidus_frontend installer is run"
command: |
test -f /tmp/dummy_extension/spec/dummy/config/initializers/solidus_frontend.rb
- codecov/upload:
file: /tmp/coverage/coverage.xml

test_solidus:
parameters:
Expand Down
21 changes: 21 additions & 0 deletions core/spec/solidus_install_coverage.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# frozen_string_literal: true

if ENV["COVERAGE"]
require 'simplecov'
if ENV["COVERAGE_DIR"]
SimpleCov.coverage_dir(ENV["COVERAGE_DIR"])
end
SimpleCov.command_name('solidus:install')
SimpleCov.merge_timeout(3600)
SimpleCov.start('rails')
end

# When the file is executed directly, run the coverage report
if __FILE__ == $PROGRAM_NAME
require "simplecov"
SimpleCov.merge_timeout 3600
SimpleCov.coverage_dir(ENV["COVERAGE_DIR"])
require "simplecov-cobertura"
SimpleCov.formatter = SimpleCov::Formatter::CoberturaFormatter
SimpleCov.result.format!
end

0 comments on commit b76d1a8

Please sign in to comment.