Repository navigation
Conversation
- multi_arch_ci_coverage_linux.yml: entry point, runnable by workflow_dispatch or cross-repo workflow_call. Computes the coverage matrix, builds compiler-runtime and an instrumented math-libs, then fans out to the report workflow per project and GPU family. - multi_arch_ci_coverage_report.yml: per project, runs the tests against the instrumented build, merges the profiles and publishes lcov, a text summary and an HTML report, plus Codecov when a token is set. - configure_coverage_ci.py: CI matrix mode, and the per-project CI metadata in the registry (stage, test component, object globs, fetch args). - merge_coverage_report.py: merges profraw files and renders the reports. The registry starts with hipRAND and hipDNN. Handling that only other projects need (unsupported and blocked projects, sibling test subprojects, stages without a build job) comes with those projects. Split out of #7783. Co-authored-by: Cursor <cursoragent@cursor.com>
Comment on lines
+130
to
+139
| - name: Checking out repository | ||
| id: checkout | ||
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| timeout-minutes: 15 | ||
| with: | ||
| # Cross-repo callers pass ROCm/TheRock + ref; same-repo defaults to github.repository. | ||
| repository: ${{ inputs.repository || github.repository }} | ||
| ref: ${{ inputs.ref }} | ||
|
|
||
| - name: Setting up Python |
Comment on lines
+272
to
+279
| - name: Checking out repository | ||
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| timeout-minutes: 15 | ||
| with: | ||
| # Cross-repo callers pass ROCm/TheRock + ref; same-repo defaults to github.repository. | ||
| repository: ${{ inputs.repository || github.repository }} | ||
| ref: ${{ inputs.ref }} | ||
| - name: Evaluate workflow results |
Comment on lines
+97
to
+104
| - name: Checking out repository | ||
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| timeout-minutes: 15 | ||
| with: | ||
| repository: ${{ inputs.repository || github.repository }} | ||
| ref: ${{ inputs.ref }} | ||
|
|
||
| - name: Checkout CI config |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stack
Review and merge in order; each PR's diff shows only its own changes.
Based on #8591. Split out of #7783.
Motivation
Part 4 of 4 of the split of #7783 (code coverage): the coverage workflows, runnable on demand. Nothing triggers them automatically.
GitHub issue: #6572
Technical Details
.github/workflows/multi_arch_ci_coverage_linux.yml: the entry point, runnable byworkflow_dispatchor a cross-repoworkflow_call. It computes the coverage matrix, builds compiler-runtime and an instrumented math-libs, then fans out to the report workflow per project and GPU family..github/workflows/multi_arch_ci_coverage_report.yml: per project, installs the baseline and swaps in only that project's instrumented libraries. It then runs the tests, merges the profiles, and publishes lcov, a text summary and an HTML report, plus Codecov whenCODECOV_TOKENis set.build_tools/github_actions/configure_coverage_ci.py:rocm_libraries_all/rocm_systems_all/allaliases, the job matrix, and the CMake coverage options;build_tools/github_actions/merge_coverage_report.py: merges.profrawfiles withllvm-profdataand renders lcov, a text summary and HTML withllvm-cov.Compared with #7783, the registry is trimmed to hipRAND and hipDNN. The handling only other projects need is deferred until those projects are onboarded: unsupported and blocked projects, sibling test subprojects (
extra_cmake_targets), and stages without a build job. Deriving the registry from the build system is tracked in #7782.Test Plan
configure_coverage_ci_test.pyandmerge_coverage_report_test.py.workflow_permissions_test.pyandworkflow_dispatch_inputs_test.py.pre-commit, includingactionlint.configure_coverage_ci.py --printwithPROJECTS_TO_TEST=hiprandand with an empty selection.workflow_dispatchonly appears once a workflow is on the default branch. So run it through a cross-repoworkflow_callpinned to this branch, once withbaseline_run_idset to a recent nightly and once without, and link the runs here.Test Result
pre-commitpass locally.--printgives-DHIPRAND_ENABLE_COVERAGE=ONfor hipRAND, and-DTHEROCK_COVERAGE_ROCM_LIBRARIES_ALL=ONwithneeds_math_libs=truefor the default selection.Submission Checklist