kevinveenbirkenbach fb977e975a test(lint): recognise compose-only task gates + skip comment / YAML metadata lines
The swarm-compat lints (`compose-chdir-in-task`, `compose-verb-in-task`,
`docker-compose-raw-call`) currently flag every offending line and only
accept per-line / file-head `# nocheck:` markers. That is noisy for
two patterns that are objectively safe:

1. Tasks gated by `when: DEPLOYMENT_MODE \!= 'swarm'` (or
   `== 'compose'`) never reach a swarm host - the compose verbs inside
   are legitimate.
2. YAML comment lines, handler-trigger list items, and human-readable
   metadata fields (`name:`, `msg:`, `title:`, `label:`, `description:`)
   contain the word `compose` as documentation, not as a shell call.

The lints now skip both classes automatically.

- utils/annotations/task_gate.py: new helper
  `is_task_compose_only_gated(lines, idx)`. Walks the surrounding
  task block via a line-based heuristic and matches `when:` against
  the compose-only DEPLOYMENT_MODE expressions. Documented as
  deliberately shallow (no YAML parse).
- tests/lint/ansible/shell/test_no_compose_chdir_in_shell_tasks.py and
  tests/lint/ansible/shell/test_no_compose_verb_in_shell_tasks.py:
  add a file-level `is_suppressed_in_head` skip, the
  `is_task_compose_only_gated` skip, and -- for the verb lint --
  three extra regex exclusions for notify-list items, YAML metadata
  fields, and quoted list items.
- tests/lint/ansible/shell/test_no_docker_compose_raw_call.py: skip
  YAML comment lines (bluesky and jenkins each had a `# … docker
  compose build …` doc-comment that was being flagged as a real call).
- tests/unit/utils/annotations/test_task_gate.py: 21 cases covering
  block-bounds + gate detection, including a `TestKnownLimitations`
  class that pins the heuristic's blind spots (folded-scalar `when:`,
  list-form `when:`, `in`/`not in`, unquoted literal, outer-`when:`
  inheritance into `block:` children) so a future YAML-aware refactor
  knows exactly which assertions to flip.
2026-06-14 19:08:45 +02:00
2026-06-03 10:37:49 +02:00
…
…
…
2026-06-03 10:37:49 +02:00
…
…
…
2026-06-03 10:37:49 +02:00
…
…

Infinito.Nexus 🚀

🔐 One login. ♾️ Infinite applications

Infinito.Nexus Logo


What is Infinito.Nexus? 📌

Infinito.Nexus is an automated, modular infrastructure framework built on Docker, Linux, and Ansible, equally suited for cloud services, local server management, and desktop workstations. At its core lies a web-based desktop with single sign-on, backed by an LDAP directory and OIDC, granting seamless access to an almost limitless portfolio of self-hosted applications. It fully supports ActivityPub applications and is Fediverse-compatible, while integrated monitoring, alerting, cleanup, self-healing, automated updates, and backup solutions provide everything an organization needs to run at scale.

📚 🔗
🌐 Try It Live Infinito.Nexus
🔧 Request Your Setup CyberMaster.Space
📖 About This Project GitHub Sponsors View Source
☕️ Support Us Patreon Buy Me a Coffee PayPal Sponsor Infinito.Nexus

Key Features 🎯

  • Automated Deployment 📦 Turn up servers and workstations in minutes with ready-made Ansible roles.

  • Enterprise-Grade Security 🔒 Centralized user management via LDAP & OIDC (Keycloak), plus optional 2FA and encrypted storage.

  • Modular Scalability 📈 Grow from small teams to global enterprises by composing only the services you need.

  • Fediverse & ActivityPub Support 🌐 Seamlessly integrate Mastodon, Peertube, Matrix and other ActivityPub apps out of the box.

  • Self-Healing & Maintenance ⚙️ Automated cleanup, container healing, and auto-updates keep infrastructure healthy without human intervention.

  • Monitoring, Alerting & Analytics 📊 Built-in system, application, and security monitoring with multi-channel notifications.

  • Backup & Disaster Recovery 💾 Scheduled backups and scripted recovery processes to safeguard your data.

  • Continuous Updates 🔄 Automatic patching and version upgrades across the stack.

  • Application Ecosystem 🚀 A curated suite of self-hosted apps, from project management, version control, and CI/CD to chat, video conferencing, CMS, e-learning, social networking, and e-commerce, all seamlessly integrated.


Get Started 🚀

Use it online 🌐

Try Infinito.Nexus – sign up in seconds, explore the platform, and discover what our solution can do for you! 🚀🔧✨

Guides 📚

  • Installation Guide for local CLI installation, Docker execution, and source builds.
  • Deploy Guide for inventory creation, full deploys, and redeploy flows.

Contributing 🔨

For the full development setup, contribution workflow, testing, and coding standards, see CONTRIBUTING.md.

Invest 💹

We are actively looking for investors to help scale Infinito.Nexus and bring open, self-hosted infrastructure to more organizations worldwide. If you are interested in investing or partnering with us, please reach out via our Investor Relations contact.

Code of Conduct 🕊️

We are committed to fostering an open and welcoming environment. Please read our CODE_OF_CONDUCT.md to understand the standards we expect from all participants in our community.

Security 🛡️

For security reporting and disclosure, see SECURITY.md.

Support and Contact 💼

For expert installation, contact details, and project participation, see SUPPORT.md.

License ⚖️

Infinito.Nexus is distributed under the Infinito.Nexus Community License (Non-Commercial). Please see LICENSE.md for full terms.

S
Description
No description provided
Readme
171 GiB
0 Stars 1 Watchers 0 Forks
Languages
Python 67.7%
Jinja 25.3%
Shell 5.7%
CSS 0.3%
JavaScript 0.3%
Other 0.5%