ci: upload omni-github test-result artifacts from CI jobs#6234
ci: upload omni-github test-result artifacts from CI jobs#6234mataylor-nvidia wants to merge 18 commits into
Conversation
Greptile SummaryThis PR introduces an
Confidence Score: 5/5Safe to merge — the change is additive CI infrastructure with no impact on production code paths. All changes are confined to GitHub Actions composite actions and a standalone Python converter. The converter logic is well-tested, platform derivation was moved from an unreliable default to automatic shell detection, and callers wire the new step correctly. The only notes are a missing explicit pip install jsonschema before the schema-validation call and a cosmetic extra space in one YAML id key — neither affects correctness on the target GitHub-hosted runners. No files require special attention; the new composite action and its Python converter are self-contained. Important Files Changed
Sequence Diagram%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant CI as CI Job (install-ci / run-tests)
participant UA as actions/upload-artifact
participant UO as upload-omni-github-test-results
participant PY as junit_to_omni_github_results.py
participant JS as jsonschema CLI
participant GH as GitHub Artifacts
CI->>UA: Upload JUnit XML report (id: upload-junit-report)
UA-->>CI: artifact-url output
CI->>UO: junit-file, junit-log-url, artifact-prefix, test-type
UO->>UO: Derive app_platform from RUNNER_OS/RUNNER_ARCH
UO->>PY: --junit-file --output-dir --test-tool-id ...
PY->>PY: Parse JUnit XML → convert testcases
PY-->>UO: writes _testoutput/test_results.json + manifest
UO->>JS: validate test_results.json against schema
JS-->>UO: exit 0 (valid) or non-zero (invalid)
UO->>GH: upload-artifact (name includes repository_id + run_id + check_run_id)
GH-->>UO: artifact uploaded
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant CI as CI Job (install-ci / run-tests)
participant UA as actions/upload-artifact
participant UO as upload-omni-github-test-results
participant PY as junit_to_omni_github_results.py
participant JS as jsonschema CLI
participant GH as GitHub Artifacts
CI->>UA: Upload JUnit XML report (id: upload-junit-report)
UA-->>CI: artifact-url output
CI->>UO: junit-file, junit-log-url, artifact-prefix, test-type
UO->>UO: Derive app_platform from RUNNER_OS/RUNNER_ARCH
UO->>PY: --junit-file --output-dir --test-tool-id ...
PY->>PY: Parse JUnit XML → convert testcases
PY-->>UO: writes _testoutput/test_results.json + manifest
UO->>JS: validate test_results.json against schema
JS-->>UO: exit 0 (valid) or non-zero (invalid)
UO->>GH: upload-artifact (name includes repository_id + run_id + check_run_id)
GH-->>UO: artifact uploaded
Reviews (7): Last reviewed commit: "fix test" | Re-trigger Greptile |
…or-nvidia/IsaacLab into mataylor/omni-github-test-results
ba6ba0e to
245ebd1
Compare
Description
Add
upload-omni-github-test-resultscomposite action to convert JUnit XML into the omni-github test-result artifact contract.Wire the upload step into install-ci, package test, and Docker test composite actions.
Use IsaacLab upstream repository ID
567038244in artifact identities for omni-github registration.Installation Tests workflow uploads
pytest-results-*--v1-567038244-*artifactsomni-github registration PR can reference real sample artifact names from this run
link to slack discussion:
https://nvidia.slack.com/archives/C0B16FFDDBP/p1782216333267729
link to artifact schema:
https://github.com/NVIDIA-Omniverse/omni-github/blob/main/docs/test-results/clients/artifact-upload/artifact-schema.md
reference to junit format: https://github.com/testmoapp/junitxml#structure
example artifact from most recent pipeline run: TODO
Fixes # (OMPE-98494)
Type of change
Checklist
pre-commitchecks with./isaaclab.sh --formatconfig/extension.tomlfileCONTRIBUTORS.mdor my name already exists there