|
|
4 лет назад | |
|---|---|---|
| .. | ||
| generate_code_coverage_report | 49e37df08f Add Incremental Code Coverage to the Workflow (#8197) | 4 лет назад |
| Gemfile | 49e37df08f Add Incremental Code Coverage to the Workflow (#8197) | 4 лет назад |
| README.md | 512c9405cd Add code coverage README (#7613) | 5 лет назад |
| code_coverage_file_list.json | 49e37df08f Add Incremental Code Coverage to the Workflow (#8197) | 4 лет назад |
| get_updated_files.sh | 496432faa8 Update changed file tool (#7463) | 5 лет назад |
| git_diff_to_json.sh | 49e37df08f Add Incremental Code Coverage to the Workflow (#8197) | 4 лет назад |
| pod_test_code_coverage_report.sh | 4a1f69854a Add test_spec parameters for podspecs with different test_spec name. (#7731) | 5 лет назад |
| post_incremental_coverage_in_pr.rb | 389c60f9c9 Post/update incremental coverage report on PRs. (#8186) | 4 лет назад |
This tool is to help generate coverage reports for pull requests. It's defined by the test_coverage workflow.
Coverage reports of SDK frameworks will be displayed in a pull request if the change is under corresponding SDK file patterns.
UpdatedFilesCollector will detect file changes and compare file paths to file patterns in code_coverage_file_list.json. If updated file paths fit any patterns, corresponding SDK coverage job will be triggered.
To create a code coverage workflow for a new SDK,
newsdk and its patterns in code_coverage_file_list.json.newsdk_run_job, in the coverage workflow. newsdk_run_job should be aligned with the name of SDK newsdk in code_coverage_file_list.json.Add a newsdk coverage job in the workflow:
pod-lib-lint-newsdk:
needs: check
# Don't run on private repo unless it is a PR.
if: always() && github.repository == 'Firebase/firebase-ios-sdk' && (needs.check.outputs.newsdk_run_job == 'true'|| github.event.pull_request.merged)
runs-on: macOS-latest
strategy:
matrix:
target: [iOS]
steps:
- uses: actions/checkout@v2
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: Build and test
run: ./scripts/code_coverage_report/pod_test_code_coverage_report.sh FirebaseNewSDK "${{ matrix.target }}"
- uses: actions/upload-artifact@v2
with:
name: codecoverage
path: /Users/runner/*.xcresult
Add the job name to the needs of create_report job.
If this newsdk podspec has unit test setup, e.g. database, with unit_tests.scheme = { :code_coverage => true }, the code coverage workflow should run unit tests through podspecs and utilize those coverage data and nothing is needed to update here. Otherwise, add another way of running tests and generating xcresult bundles with code coverage data in pod_test_code_coverage_report.sh.