Add ansible-lint CI gate and antsibull-changelog release pipeline #1

Merged
jsanchezd merged 1 commit from feature/ci-lint-and-release-gate into main 2026-09-29 15:06:22 +00:00
Owner

Rolls out the pattern proven on silvarion.repos/base/containers/databases/network. This collection had no changelogs/config.yaml at all -- created one matching the fleet standard.

Fixed real issues: galaxy.yml had a redundant/invalid top-level requires_ansible key, two play names embedded Jinja mid-string, become_method: sudo isn't in ansible-core's schema enum (needs the FQCN form), two import_playbook entries had no name, manual column-alignment padding tripped yaml[colons]/jinja[spacing], and plugins/lookup/env_parser.py's entire DOCUMENTATION/EXAMPLES/RETURN block was commented out -- uncommenting it exposed a second real bug (a description bullet's trailing colon broke YAML parsing), both fixed.

Verified antsibull-changelog release+generate end-to-end in a fresh container: fails with the exact env_parser.py error before the fix, succeeds after.

🤖 Generated with Claude Code

https://claude.ai/code/session_012icUrjv3vgHtovVpHUFjdp

Rolls out the pattern proven on silvarion.repos/base/containers/databases/network. This collection had no changelogs/config.yaml at all -- created one matching the fleet standard. Fixed real issues: galaxy.yml had a redundant/invalid top-level requires_ansible key, two play names embedded Jinja mid-string, become_method: sudo isn't in ansible-core's schema enum (needs the FQCN form), two import_playbook entries had no name, manual column-alignment padding tripped yaml[colons]/jinja[spacing], and plugins/lookup/env_parser.py's entire DOCUMENTATION/EXAMPLES/RETURN block was commented out -- uncommenting it exposed a second real bug (a description bullet's trailing colon broke YAML parsing), both fixed. Verified antsibull-changelog release+generate end-to-end in a fresh container: fails with the exact env_parser.py error before the fix, succeeds after. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_012icUrjv3vgHtovVpHUFjdp
Add ansible-lint CI gate and antsibull-changelog release pipeline
All checks were successful
Ansible Lint / ansible-lint (pull_request) Successful in 1m37s
5bab80ac2c
Rolls out the pattern proven on silvarion.repos/base/containers/
databases/network. This collection had no changelogs/config.yaml at
all, so antsibull-changelog couldn't run here until now -- created one
matching the fleet's standard shape.

Fixed real issues ansible-lint found:
- galaxy.yml had a top-level `requires_ansible` key (not part of the
  official schema, fatal under the basic profile) despite
  meta/runtime.yml already correctly declaring the same value --
  removed the redundant/invalid duplicate.
- Two plays' names embedded a Jinja expression mid-string instead of
  at the end (name[template]); reworded both.
- playbooks/infra_work.yml's tech play used become_method: sudo, which
  isn't in ansible-core's schema-recognized enum (it wants the FQCN
  form) -- changed to become_method: ansible.builtin.sudo, the modern
  equivalent.
- playbooks/main.yml's two import_playbook entries had no name (all
  plays must be named) -- added descriptive ones.
- roles/inventory/tasks/main.yml had manually column-aligned YAML keys
  and Jinja expressions (extra spaces for visual alignment), which
  yaml[colons] and jinja[spacing] both flag -- removed the padding.
  Same padding pattern (non-fatal warnings only) also cleaned up in
  roles/proxmox/tasks/create/lxc.yml for consistency.
- plugins/lookup/env_parser.py's entire DOCUMENTATION/EXAMPLES/RETURN
  block was commented out (every line prefixed with `#`), so the
  plugin shipped with no real Ansible documentation metadata at all --
  antsibull-changelog's own plugin-doc scan failed outright without
  it. Uncommented the block, which then exposed a second, genuine bug:
  a description bullet's "...priority order:" line ended with a colon
  immediately before a continuation line, which YAML's plain-scalar
  parser misreads as an attempted mapping key (confirmed via
  yaml.safe_load on the extracted DOCUMENTATION string) -- reworded to
  avoid the trailing colon.

Verified antsibull-changelog release+generate end-to-end in a fresh
container matching the CI job image -- fails with the exact error
above before the env_parser.py fixes, succeeds after.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012icUrjv3vgHtovVpHUFjdp
jsanchezd deleted branch feature/ci-lint-and-release-gate 2026-09-29 15:06:22 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ansible-collections/silvarion.provision!1
No description provided.