Public Access
The v0.49.x tag line diverged from origin/master, leaving many features only accessible via tags but not on the master branch. New modules: - ci/cancel_superseded_runs.py — cancel superseded CI runs - ci/check_workflow_artifact_deps.py — validate artifact deps - ci/check_workflow_tofu_init.py — validate tofu init steps - tools/check_alert_rules.py — validate Prometheus alert rules - tools/check_ansible_set_fact_to_json.py — lint set_fact usage - tools/check_docker_init.py — validate Docker init scripts - utils/jinja.py — Jinja2 template utilities - utils/ui.py — UI/console utilities Modified modules: - distribute_molecule.py: add --include-roles/--exclude-roles - utils/api.py: add container.credentials for private registry auth - install_tools.py: retry ansible-galaxy on transient timeouts - setup_image.py: skip dep resolution with --no-deps - cli.py: register new commands - i18n.py: add new translation keys Also removes accidentally committed .vale/styles/Google/ files. Test results: 2195 passed, 100% coverage. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
98 lines
2.8 KiB
YAML
98 lines
2.8 KiB
YAML
repos:
|
|
- repo: local
|
|
hooks:
|
|
- id: validate-commit-msg
|
|
name: validate commit message
|
|
entry: env PYTHONPATH=src .venv/bin/python3 -m devx.ci.validate_commit_msg
|
|
language: system
|
|
stages: [commit-msg]
|
|
pass_filenames: true
|
|
|
|
- id: lint-ruff
|
|
name: ruff lint
|
|
entry: make lint-ruff
|
|
language: system
|
|
types: [python]
|
|
pass_filenames: false
|
|
stages: [pre-commit]
|
|
|
|
- id: lint-format
|
|
name: ruff format check
|
|
entry: make lint-format
|
|
language: system
|
|
types: [python]
|
|
pass_filenames: false
|
|
stages: [pre-commit]
|
|
|
|
- id: typecheck
|
|
name: pyright type check
|
|
entry: make typecheck
|
|
language: system
|
|
types: [python]
|
|
pass_filenames: false
|
|
stages: [pre-commit]
|
|
|
|
- id: lint-bandit
|
|
name: bandit security scan
|
|
entry: make lint-bandit
|
|
language: system
|
|
types: [python]
|
|
pass_filenames: false
|
|
stages: [pre-commit]
|
|
|
|
- id: workflow-lint
|
|
name: actionlint (workflow YAML)
|
|
entry: make workflow-lint
|
|
language: system
|
|
files: ^\.gitea/workflows/
|
|
types: [yaml]
|
|
pass_filenames: false
|
|
stages: [pre-commit]
|
|
|
|
- id: checkmake
|
|
name: checkmake Makefile linter
|
|
entry: make checkmake
|
|
language: system
|
|
files: (Makefile|\.mak)$
|
|
pass_filenames: false
|
|
stages: [pre-commit]
|
|
|
|
- id: check-test-speed
|
|
name: unit test speed check
|
|
entry: .venv/bin/python -m devx.tools.check_test_speed --max-seconds 15 --max-single-seconds 0.5
|
|
language: system
|
|
types: [python]
|
|
pass_filenames: false
|
|
stages: [pre-commit]
|
|
|
|
- id: check-translations
|
|
name: translation completeness check
|
|
entry: env PYTHONPATH=src .venv/bin/python -m devx.ci.check_translations
|
|
language: system
|
|
files: ^src/devx/translations\.json$
|
|
pass_filenames: false
|
|
stages: [pre-commit]
|
|
|
|
- id: docs-check
|
|
name: documentation gate (coverage + stale refs + lint + version refs + prose)
|
|
entry: bash -c 'PYTHONPATH=src DEVX_DOC_COVERAGE_STRICT=1 DEVX_VALE_LEVEL=warning make devx-docs-check'
|
|
language: system
|
|
pass_filenames: false
|
|
always_run: true
|
|
stages: [pre-commit]
|
|
|
|
- id: pytest-cov
|
|
name: pytest with 100% coverage
|
|
entry: make pytest-cov
|
|
language: system
|
|
types: [python]
|
|
pass_filenames: false
|
|
stages: [pre-push]
|
|
|
|
- id: commit-msg
|
|
name: validate commit message
|
|
entry: env PYTHONPATH=src .venv/bin/python3 -m devx.ci.validate_commit_msg
|
|
language: system
|
|
stages: [commit-msg]
|
|
pass_filenames: true
|