Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kodi/appeals 55794 v2 test #22887

Closed
wants to merge 13 commits into from
30 changes: 30 additions & 0 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,36 @@ jobs:
with:
path: ./log/bullet-${{matrix.ci_node_index}}.log

- name: List coverage files for debugging
run: ls -R ./coverage

# New job to merge and upload the code coverage
merge_coverage_job:
runs-on: ubuntu-latest
needs: caseflow_rspec_job
steps:
- name: Download coverage from all nodes
uses: actions/download-artifact@v3
with:
path: ./coverage

- name: Extract all coverage reports
run: |
mkdir -p merged_coverage
for f in ./coverage/coverage-*.tar.gz; do tar -xzf "$f" -C merged_coverage; done

- name: Merge coverage results
run: bundle exec rake simplecov:merge_coverage

- name: List merged coverage files for debugging
run: ls -R ./merged_coverage

- name: Add code coverage comment
uses: romeovs/lcov-reporter-action@v0.2.16
with:
lcov-file: ./merged_coverage/lcov/caseflow.lcov
github-token: ${{ secrets.GITHUB_TOKEN }}

caseflow_jest_job:
# This job will run the jest, change the value below to false if you wish to turn it off.
if: true
Expand Down
66 changes: 44 additions & 22 deletions .simplecov
Original file line number Diff line number Diff line change
@@ -1,25 +1,47 @@
if ENV["RAILS_ENV"] == "test"
SimpleCov.start do
add_filter "app/services/test_data_service.rb"
add_filter "lib/fakes"
add_filter "lib/generators"
add_filter "spec/support"
add_filter "spec/rails_helper.rb"
add_filter "spec/spec_helper.rb"
add_filter "config/initializers"
add_filter "config/environments/test.rb"
add_filter "lib/tasks"
add_filter "app/controllers/errors_controller.rb"
add_filter "app/services/external_api/vbms_service.rb"
add_filter "app/services/external_api/bgs_service.rb"
add_filter "app/services/redistributed_case.rb"
add_filter "spec/factories"
add_filter "spec/"
end
SimpleCov.coverage_dir ENV["COVERAGE_DIR"] || nil
SimpleCov.command_name ENV["TEST_SUBCATEGORY"] || "all"
if ENV["GHA_NODE_INDEX"]
SimpleCov.command_name "RSpec" + ENV["GHA_NODE_INDEX"]
require "simplecov"
require "simplecov_lcov_formatter"

if ENV['CI']
# This ensures the command name is unique for each CI node
SimpleCov.command_name "RSpec-#{ENV['GHA_NODE_INDEX']}" if ENV['GHA_NODE_INDEX']

# Configure the LCOV formatter
SimpleCov::Formatter::LcovFormatter.config.report_with_single_file = true

# Set the formatters for both HTML and LCOV reports
SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new([
SimpleCov::Formatter::HTMLFormatter,
SimpleCov::Formatter::LcovFormatter
])
end

# Specify the coverage directory
SimpleCov.coverage_dir 'coverage/lcov'

# Define which files to filter out from coverage reports
SimpleCov.start do
add_filter "app/services/test_data_service.rb"
add_filter "lib/fakes"
add_filter "lib/generators"
add_filter "spec/support"
add_filter "spec/rails_helper.rb"
add_filter "spec/spec_helper.rb"
add_filter "config/initializers"
add_filter "config/environments/test.rb"
add_filter "lib/tasks"
add_filter "app/controllers/errors_controller.rb"
add_filter "app/services/external_api/vbms_service.rb"
add_filter "app/services/external_api/bgs_service.rb"
add_filter "app/services/redistributed_case.rb"
add_filter "spec/factories"
add_filter "spec/"
end

# Store result for merging
SimpleCov.at_exit do
SimpleCov.result.format!
if ENV['CI']
SimpleCov::ResultMerger.store_result(SimpleCov.result)
end
end

4 changes: 2 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,8 @@ group :test, :development, :demo, :make_docs do
gem "rubocop-performance"
gem "rubocop-rails"
gem "scss_lint", require: false
gem "simplecov", require: false
gem "simplecov-lcov", require: false
gem "simplecov"
gem "simplecov_lcov_formatter", "~> 0.9.0"
gem "single_cov"
gem "sniffybara", git: "https://github.com/department-of-veterans-affairs/sniffybara.git"
gem "sql_tracker"
Expand Down
Loading
Loading