DEVX-50: refactor: remove JUnit reporting from devx
This commit is contained in:
+1
-1
@@ -100,7 +100,7 @@ devx is a self-contained Python package under `src/devx/`:
|
||||
- **CI automation** (`devx.ci`) — release, publish, auto_merge, pr_review,
|
||||
classify_changes, sync_wiki, push_badges, check_translations, doc_coverage,
|
||||
validate_commit_msg, detect_release_commit, notify_failure, post_merge,
|
||||
discover_runners, distribute_files, merge_junit, integration_guard
|
||||
discover_runners, distribute_files, integration_guard
|
||||
- **Dev tools** (`devx.tools`) — setup, install_tools, check_test_speed,
|
||||
configure_repo, generate_badges, generate_cliff_config, install_checkmake
|
||||
- **Molecule tools** (`devx.molecule`) — Optional, for projects with Ansible
|
||||
|
||||
@@ -31,9 +31,8 @@ src/devx/
|
||||
│ ├── sync_wiki.py # Sync documentation to Gitea wiki
|
||||
│ ├── push_badges.py # Generate and push quality badges
|
||||
│ ├── notify_failure.py # Create Gitea issues on CI failures
|
||||
│ ├── merge_junit.py # Merge JUnit XML reports from parallel runners
|
||||
│ ├── distribute_files.py # Distribute files across parallel runners
|
||||
│ ├── integration_guard.py # Run pytest with cross-runner fail-fast + JUnit
|
||||
│ ├── integration_guard.py # Run pytest with cross-runner fail-fast
|
||||
│ ├── discover_runners.py # Dynamic Gitea runner discovery
|
||||
│ ├── check_translations.py # Translation completeness check
|
||||
│ └── doc_coverage.py # Documentation coverage check
|
||||
@@ -296,18 +295,11 @@ Distributes files matching a glob pattern across N parallel runners
|
||||
(round-robin). Writes the assigned file list for the current runner to
|
||||
`$GITHUB_ENV`. Used for splitting test suites across CI runners.
|
||||
|
||||
### `merge_junit.py`
|
||||
|
||||
Merges JUnit XML reports from parallel matrix runners into a single
|
||||
consolidated report. Exit code is non-zero if any merged suite reports
|
||||
failures, making it suitable as a CI gating step.
|
||||
|
||||
### `integration_guard.py`
|
||||
|
||||
Runs pytest with the same cross-runner failure detection mechanism used by
|
||||
`molecule_ci_guard`. If any other integration-tests matrix runner reports
|
||||
failure, the current pytest subprocess is killed and this runner exits early.
|
||||
Generates JUnit XML via pytest's `--junitxml` flag.
|
||||
|
||||
## Developer tools (`devx.tools`)
|
||||
|
||||
@@ -382,9 +374,8 @@ platforms.
|
||||
|
||||
Runs molecule tests sequentially while polling the Gitea API for other runner
|
||||
failures. If any other molecule matrix runner reports failure, the current
|
||||
molecule subprocess is killed and this runner exits early. Generates JUnit
|
||||
XML when `--junit-output` is provided. Supports both single-role (4-part) and
|
||||
multi-role (5-part) pair encoding.
|
||||
molecule subprocess is killed and this runner exits early. Supports both
|
||||
single-role (4-part) and multi-role (5-part) pair encoding.
|
||||
|
||||
### `molecule_all.py`
|
||||
|
||||
|
||||
@@ -447,12 +447,10 @@ python -m devx.molecule.distribute_molecule --list-platforms
|
||||
### `molecule_ci_guard.py`
|
||||
|
||||
Runs molecule tests sequentially while polling the Gitea API for other runner
|
||||
failures. Aborts early if another runner fails the same job. Generates JUnit
|
||||
XML when `--junit-output` is provided.
|
||||
failures. Aborts early if another runner fails the same job.
|
||||
|
||||
```bash
|
||||
python -m devx.molecule.molecule_ci_guard [--roles-root <dir>] \
|
||||
[--junit-output <file>] pair1 pair2 ...
|
||||
python -m devx.molecule.molecule_ci_guard [--roles-root <dir>] pair1 pair2 ...
|
||||
```
|
||||
|
||||
### `validate_commit_msg.py`
|
||||
@@ -503,16 +501,6 @@ python -m devx.ci.distribute_files --pattern <glob> --runner-index <i> \
|
||||
--max-runners <n> [--github-env] [--skip-if-excess]
|
||||
```
|
||||
|
||||
### `merge_junit.py`
|
||||
|
||||
Merges JUnit XML reports from parallel matrix runners into a single
|
||||
consolidated report. Exit code is non-zero if any merged suite reports
|
||||
failures.
|
||||
|
||||
```bash
|
||||
python -m devx.ci.merge_junit --pattern <glob> --output <file>
|
||||
```
|
||||
|
||||
### `integration_guard.py`
|
||||
|
||||
Runs pytest with cross-runner failure detection. If any other
|
||||
@@ -520,7 +508,7 @@ integration-tests matrix runner reports failure, the current pytest
|
||||
subprocess is killed and this runner exits early.
|
||||
|
||||
```bash
|
||||
python -m devx.ci.integration_guard --junit-output <file> -- <pytest args>
|
||||
python -m devx.ci.integration_guard -- <pytest args>
|
||||
```
|
||||
|
||||
## Release process summary
|
||||
|
||||
@@ -137,13 +137,13 @@ Options:
|
||||
|
||||
### `devx ci integration-guard`
|
||||
|
||||
Run pytest with cross-runner failure detection and JUnit XML output. If any
|
||||
Run pytest with cross-runner failure detection. If any
|
||||
other integration-tests matrix runner reports failure, the current pytest
|
||||
subprocess is killed and this runner exits early with code 1.
|
||||
|
||||
```bash
|
||||
devx ci integration-guard --junit-output junit-results/runner-1.xml -- test_a.py test_b.py
|
||||
devx ci integration-guard --junit-output junit-results/runner-1.xml -- -x -v --tb=short test_a.py
|
||||
devx ci integration-guard -- test_a.py test_b.py
|
||||
devx ci integration-guard -- -x -v --tb=short test_a.py
|
||||
```
|
||||
|
||||
Environment variables:
|
||||
@@ -154,16 +154,6 @@ Environment variables:
|
||||
- `MATRIX_INDEX` — current matrix index (runner-index)
|
||||
- `GITEA_REPOSITORY` — repository in `owner/repo` format
|
||||
|
||||
### `devx ci merge-junit`
|
||||
|
||||
Merge multiple JUnit XML reports from parallel runners into a single
|
||||
consolidated report. Exit code is non-zero if any merged test suite reports
|
||||
failures, making it suitable as a CI gating step after matrix jobs.
|
||||
|
||||
```bash
|
||||
devx ci merge-junit --pattern "junit-results/runner-*.xml" --output junit-merged.xml
|
||||
```
|
||||
|
||||
### `devx ci notify-failure`
|
||||
|
||||
Create a Gitea issue when a CI workflow fails. Uses the tea CLI for issue
|
||||
@@ -461,7 +451,6 @@ current molecule subprocess is killed and this runner exits early with code 1.
|
||||
```bash
|
||||
devx molecule guard pair1 pair2 pair3
|
||||
devx molecule guard --roles-root ansible/roles pair1 pair2
|
||||
devx molecule guard --junit-output junit-results/runner-1.xml pair1 pair2
|
||||
```
|
||||
|
||||
Each pair is encoded as:
|
||||
@@ -470,7 +459,6 @@ Each pair is encoded as:
|
||||
|
||||
Options:
|
||||
- `--roles-root <dir>` — roles root directory for multi-role repos
|
||||
- `--junit-output <file>` — generate JUnit XML report
|
||||
|
||||
Environment variables:
|
||||
- `GITEA_URL` — base URL of the Gitea instance
|
||||
|
||||
Reference in New Issue
Block a user