Public Access
DEVX-145: feat: extract reusable components from infra and grm into devx
This commit was merged in pull request #230.
This commit is contained in:
@@ -315,6 +315,56 @@ devx ci validate-commit-msg commit-msg.txt --branch master
|
||||
Options:
|
||||
- `--branch <branch>` — override branch detection (for CI use)
|
||||
|
||||
### `devx ci cancel-superseded-runs`
|
||||
|
||||
Cancel in-flight CI runs for the same PR branch when a new push triggers
|
||||
a new run. Uses the Gitea Actions API to list running pull_request runs
|
||||
and cancel those with a lower run ID on the same branch.
|
||||
|
||||
```bash
|
||||
devx ci cancel-superseded-runs \
|
||||
--repo "$REPOSITORY" \
|
||||
--current-run-id "$GITHUB_RUN_ID" \
|
||||
--head-branch "$HEAD_REF"
|
||||
```
|
||||
|
||||
Options:
|
||||
- `--repo <owner/repo>` — repository (required)
|
||||
- `--current-run-id <id>` — current run ID, not cancelled (required)
|
||||
- `--head-branch <branch>` — PR head branch name (required)
|
||||
- `--dry-run` — list superseded runs without cancelling
|
||||
- `--base-url <url>` — Gitea base URL (default: `GITEA_API_URL` env var)
|
||||
|
||||
### `devx ci check-workflow-artifact-deps`
|
||||
|
||||
Verify that workflow jobs downloading artifacts depend on the uploading
|
||||
job. Prevents the class of bug where a download job runs in parallel
|
||||
with the upload job and fails because the artifact isn't available yet.
|
||||
|
||||
```bash
|
||||
devx ci check-workflow-artifact-deps
|
||||
devx ci check-workflow-artifact-deps --workflow .gitea/workflows/ci.yml
|
||||
```
|
||||
|
||||
Options:
|
||||
- `--workflow <path>` — check a specific workflow file
|
||||
- `--workflows-dir <path>` — override workflows directory
|
||||
|
||||
### `devx ci check-workflow-tofu-init`
|
||||
|
||||
Verify that workflow jobs using tofu state (tofu output/plan/apply or
|
||||
scripts that call them) have a tofu-init step in the same job.
|
||||
|
||||
```bash
|
||||
devx ci check-workflow-tofu-init
|
||||
devx ci check-workflow-tofu-init --workflow .gitea/workflows/deploy.yml
|
||||
```
|
||||
|
||||
Options:
|
||||
- `--workflow <path>` — check a specific workflow file
|
||||
- `--workflows-dir <path>` — override workflows directory
|
||||
- `--state-script <name>` — add a script that uses tofu state (repeatable)
|
||||
|
||||
## Tools Commands
|
||||
|
||||
### `devx tools check-test-speed`
|
||||
@@ -488,6 +538,56 @@ devx tools pr-rebase # auto-detect PR from current branch
|
||||
Options (pass after `--`):
|
||||
- `--pr <N>` — PR number (auto-detected from current branch if omitted)
|
||||
|
||||
### `devx tools check-docker-init`
|
||||
|
||||
Check that Docker Compose services with healthchecks have `init: true`.
|
||||
Without `init: true`, CMD-SHELL healthchecks spawn child processes that
|
||||
become zombies when PID 1 doesn't reap them.
|
||||
|
||||
```bash
|
||||
devx tools check-docker-init
|
||||
devx tools check-docker-init --path path/to/docker-compose.yml.j2
|
||||
```
|
||||
|
||||
Options:
|
||||
- `--path <path>` — check a specific file or directory
|
||||
- `--templates-dir <path>` — override templates directory (default: `ansible/roles/`)
|
||||
|
||||
### `devx tools check-ansible-set-fact-to-json`
|
||||
|
||||
Check that Ansible `set_fact` tasks don't misuse `| to_json`. Using
|
||||
`to_json` in `set_fact` converts native Python types to JSON strings,
|
||||
causing iteration bugs (for example, iterating over characters instead
|
||||
of list items).
|
||||
|
||||
```bash
|
||||
devx tools check-ansible-set-fact-to-json
|
||||
devx tools check-ansible-set-fact-to-json --path path/to/playbook.yml
|
||||
```
|
||||
|
||||
Options:
|
||||
- `--path <path>` — check a specific file or directory
|
||||
- `--ansible-dir <path>` — override ansible directories (repeatable)
|
||||
|
||||
### `devx tools check-alert-rules`
|
||||
|
||||
Validate rendered Prometheus alert rules with `promtool check rules`.
|
||||
Renders a Jinja2 template with test values and validates the output.
|
||||
Skips (exits 0) if promtool is not on PATH.
|
||||
|
||||
```bash
|
||||
devx tools check-alert-rules \
|
||||
--template-path ansible/roles/observability/templates
|
||||
devx tools check-alert-rules \
|
||||
--template-path ansible/roles/observability/templates \
|
||||
--var grafana_base_url=https://grafana.example.com
|
||||
```
|
||||
|
||||
Options:
|
||||
- `--template-path <path>` — path to templates directory (required)
|
||||
- `--template-name <name>` — template file name (default: `alert-rules.yml.j2`)
|
||||
- `--var key=value` — template variables (repeatable)
|
||||
|
||||
## Molecule Commands
|
||||
|
||||
Molecule commands require the `molecule` extra (`pip install devx[molecule]`).
|
||||
|
||||
Reference in New Issue
Block a user