Ansible/Kubernetes: helm-unittest suites in charts/*/unittests via ct.yaml additional-commands, yamllint as an Ansible linter, molecule's pytest verifier, antsibull-nox
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 22/100
Hướng nghiên cứu
Start with project_validator/ecosystems/kubernetes.py around lines 116-118, where the helm-unittest pattern is defined, and with the docs/ecosystems/ansible.md note on yamllint. The issue asks for several separate changes: reading chart-testing's ct.yaml additional-commands, widening the unittests/ pattern, crediting shellcheck and yamllint, and recognising antsibull-nox sessions. Each needs a design decision first, so confirm the scope with a maintainer. Done means the corpus cases for these repositories produce the expected statuses.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
prometheus-community/helm-charts runs 118 helm-unittest suites (charts/*/unittests/**/*.yaml) and shellcheck through chart-testing's ct.yaml additional-commands (helm unittest --strict …); the config file is never read and the pattern requires tests/*_test.yaml. yamllint is the one linter every Ansible role in the corpus runs (yamllint ., pre-commit hook, run_yamllint = true) but is not an Ansible static-analysis claim. kubespray's one Python "test" is a molecule/testinfra verifier that molecule test runs. community.general's entire CI is antsibull-nox (declared in the repo's own config), the standard driver of ~100 ansible-collections repos.
Evidence from the corpus audit
ansible-collections/community.general / tests-run, static-analysis, type-checking, code-formatting
- kind: UNSUPPORTED
- actual: ERROR (strict) "not read: job ansible-test: it calls the reusable workflow
ansible-community/antsibull-nox/.github/workflows/reusable-nox-matrix.yml@main"; with--allow-unknown:
tests-runFAIL "Ansible: tests found in 281 file(s), but no CI configuration runs molecule test or ansible-test
integration",static-analysisFAIL "Ansible: ansible-lint is configured (.ansible-lint) but does not run; Python:
ruff check is configured (ruff.toml) but does not run",type-checkingWARN "mypy is configured (.mypy.ini) but
does not run",code-formattingFAIL "Python: ruff.toml is defined but CI does not run ruff format". - expected: the reusable workflow is unreadable (see "Unreadable by nature"), but everything it runs is declared in
the repository's own antsibull-nox configuration, the standard CI driver of the ansible-collections organisation
(~100 collections). Recognisingantsibull-nox.tomlsessions ([sessions.ansible_lint],
[sessions.ansible_test_sanity],[sessions.ansible_test_units],[sessions.ansible_test_integration],
run_mypy = true,run_ruff_check = true,run_ruff_format = true,run_yamllint = true) when the workflow
uses: ansible-community/antsibull-nox/...would answer all four checks. - evidence:
.github/workflows/nox.yml:28:uses: ansible-community/antsibull-nox/.github/workflows/reusable-nox-matrix.yml@main;
antsibull-nox.toml:[sessions.lint]...run_ruff_check = true/run_ruff_format = true/run_yamllint = true
/run_mypy = true/mypy_config = ".mypy.ini";[sessions.ansible_lint];[sessions.ansible_test_sanity];
[sessions.ansible_test_units]with[sessions.ansible_test_units.core_python_versions] "2.19" = ["3.8", "3.11", "3.13"];
[sessions.ansible_test_integration];noxfile.pypresent at the root. - repro:
galaxy.yml+antsibull-nox.tomlwith[sessions.ansible_test_units]+ a workflow whose jobuses: ansible-community/antsibull-nox/.github/workflows/reusable-nox-matrix.yml@main. - confidence: medium (a gap, not a bug)
kubernetes-sigs/kubespray / tests-run (Python)
- kind: FALSE_POSITIVE
- actual: FAIL (component) "Python: the root: tests found in 1 file(s), but no CI configuration runs pytest, unittest
or nox" - expected: the one file is a molecule/testinfra verifier that
molecule testruns (molecule'sverifystage
invokes pytest onmolecule/<scenario>/tests/test_*.py); CI runs molecule (tests/scripts/molecule_run.shfrom
.gitlab-ci/molecule.yml), and the Ansible component of the same check is credited ("Ansible: tests found in 9
file(s)"). Test files undermolecule/*/tests/belong to the molecule scenario, not to a pytest suite. - evidence:
find . -name 'test_*.py' -o -name '*_test.py'→ only
./roles/bootstrap_os/molecule/default/tests/test_default.py;roles/bootstrap_os/molecule/default/molecule.yml
present (scenario). - repro:
molecule/default/molecule.yml+molecule/default/tests/test_default.py+ CImolecule test. - confidence: low (molecule ≥ 6 made the testinfra verifier optional, so whether it runs depends on the scenario's
verifier:; the scenario here declares none in the lines read)
prometheus-community/helm-charts / tests-run, static-analysis (Shell)
- kind: FALSE_NEGATIVE
- actual:
tests-run"Kubernetes: tests found in 11 file(s)" (7templates/tests/*.yamlhooks + the few
tests/*_test.yaml);static-analysisFAIL "Shell: no static analyzer runs";compiler-warningsFAIL "Shell: no
shell lints found";warnings-as-errorsFAIL. - expected: 118 helm-unittest suites under
charts/*/unittests/**/*.yamlcounted and credited as run, and shellcheck
credited: chart-testing's configuration file runshelm unittest --strictandshellcheckon every changed chart
throughadditional-commands, andct lint --config .github/linters/ct.yamlruns in CI. The validator neither
reads ct's config file (.github/linters/ct.yaml/ct.yaml, the only placeadditional-commandscan live) nor
recognisesunittests/as a helm-unittest directory (its pattern requirestests/*_test.yaml). - evidence:
.github/linters/ct.yaml:2-4:additional-commands:/
- sh -ec "if [ -f '{{ .Path }}/ci/lint.sh' ]; then shellcheck '{{ .Path }}/ci/lint.sh'; bash '{{ .Path }}/ci/lint.sh'; fi"/
- helm unittest --strict --file 'unittests/**/*.yaml' {{ .Path }};.github/workflows/ci.yaml:76:
run: ct lint --config .github/linters/ct.yaml;:63:run: helm plugin install https://github.com/helm-unittest/helm-unittest.git ...;
find charts -path '*unittests/*_test.yaml' | wc -l→ 118 (e.g.charts/prometheus-rabbitmq-exporter/unittests/service_test.yaml,
charts/prometheus-stackdriver-exporter/unittests/deployment_namespace_test.yaml).
Validator:project_validator/ecosystems/kubernetes.py:116-118:name="helm-unittest tests (tests/*_test.yaml)",
path=re.compile(r"(?:^|/)tests/.+_test\.ya?ml$"); no reference toadditional-commandsorct.yamlanywhere
inproject_validator/. - repro:
charts/a/Chart.yaml+charts/a/unittests/deployment_test.yaml(suite: ...) +ct.yamlwith
additional-commands: [helm unittest --strict --file 'unittests/**/*.yaml' {{ .Path }}]+ a workflow
run: ct lint --config ct.yaml. - confidence: high
geerlingguy/ansible-role-docker, geerlingguy/ansible-for-devops, kubernetes-sigs/kubespray / static-analysis
- kind: UNSUPPORTED
- actual: ansible-role-docker
static-analysisWARN "ansible-lint is configured (.ansible-lint) but does not run"
(correct, see below) anddata-wellformedPASS "22 YAML files parse" with no mention of yamllint;
kubespray/pre-commit runs yamllint,ansible-static-lint(astl), misspell and a Jinja syntax check that are not
credited anywhere. - expected: not a wrong status, but yamllint is the one linter that every Ansible role in this batch runs
(yamllint .in ansible-role-docker's CI,pip3 install ... yamllintin ansible-for-devops, a pre-commit hook in
kubespray,run_yamllint = truein community.general) and the Data profile has nowhere to report it; the Ansible
profile doc says "yamllint lints the YAML, which is the Data format's to ask for", but the Data format never asks. - evidence:
geerlingguy__ansible-role-docker/.github/workflows/ci.yml:32:run: pip3 install yamllint;:35-36:
run: |/yamllint .;.yamllint:1:extends: default;kubernetes-sigs__kubespray/.pre-commit-config.yaml:17-20:
- repo: https://github.com/adrienverge/yamllint.git...- id: yamllint;:31-34:
- repo: https://github.com/arhuman/ansible-static-lint...- id: astl. - repro: n/a (a gap)
- confidence: low (by design per docs/ecosystems/ansible.md; recorded because it is the ecosystem's universal tool)
Found by the regression-corpus audit (235 real repositories, one or more per ecosystem profile; corpus and expected results in corpus/). Evidence is quoted from the audited checkouts at the commits pinned in corpus/projects.toml; <checkouts>/<owner>__<repo> is such a checkout.
🤖 Generated with Claude Code
- Ngôn ngữ chính
- Python
- Star
- 4
- Fork
- 1
- Merge trung bình
- 10 giờ 41 phút
- Pull request đã merge (30 ngày)
- 79
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của cpp-best-practices/project_validator
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
cpp-best-practices/project_validator#267 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
cpp-best-practices/project_validator#263 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
cpp-best-practices/project_validator#260 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
cpp-best-practices/project_validator#259 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
cpp-best-practices/project_validator#255 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của cpp-best-practices/project_validator
Issue tương tự
-
plot_graph crashes when a mesh node has no m2m edgeCó thể đã có người làm @tygvi đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
mllam/neural-lam#883 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
enhancement possible-duplicate
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 78/100
AOSSIE-Org/PictoPy#1715 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 6 ngày
-
SQLite connector omits generated columns from the catalog, and drops relationships sourced on themĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
NVIDIA/auto-ontology#511 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
ethereum/execution-specs#3996 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Project-N-E-K-O/N.E.K.O#3725 ·
Maintainer thường phản hồi trong vòng 1 ngày