graph LR
Workflow_Orchestrator["Workflow Orchestrator"]
Environment_Bootstrap["Environment Bootstrap"]
Build_Job["Build Job"]
Artifact_Publisher["Artifact Publisher"]
Lint_Job["Lint Job"]
Sanity_Job["Sanity Job"]
Unit_Galaxy_Job["Unit‑Galaxy Job"]
Coverage_Job["Coverage Job"]
All_Green_Aggregator["All‑Green Aggregator"]
Unclassified["Unclassified"]
Workflow_Orchestrator -- "needs" --> Build_Job
Workflow_Orchestrator -- "needs" --> All_Green_Aggregator
Environment_Bootstrap -- "provides runtime for" --> Build_Job
Environment_Bootstrap -- "provides runtime for" --> Lint_Job
Environment_Bootstrap -- "provides runtime for" --> Sanity_Job
Environment_Bootstrap -- "provides runtime for" --> Unit_Galaxy_Job
Environment_Bootstrap -- "provides runtime for" --> Coverage_Job
Build_Job -- "produces" --> Artifact_Publisher
Lint_Job -- "needs" --> Build_Job
Sanity_Job -- "needs" --> Build_Job
Unit_Galaxy_Job -- "needs" --> Build_Job
Coverage_Job -- "needs" --> Build_Job
Artifact_Publisher -- "provides" --> Lint_Job
Artifact_Publisher -- "provides" --> Sanity_Job
Artifact_Publisher -- "provides" --> Unit_Galaxy_Job
Artifact_Publisher -- "provides" --> Coverage_Job
All_Green_Aggregator -- "needs" --> Lint_Job
All_Green_Aggregator -- "needs" --> Sanity_Job
All_Green_Aggregator -- "needs" --> Unit_Galaxy_Job
All_Green_Aggregator -- "needs" --> Coverage_Job
All_Green_Aggregator -- "reports" --> Workflow_Orchestrator
The CI Pipeline Subsystem – The GitHub‑Actions CI pipeline is encapsulated in the .github/workflows/ directory. The Workflow Orchestrator defines the triggers (push, PR, schedule, manual) and the job dependency graph. A single Environment Bootstrap step installs a reproducible Python 3.x interpreter and the matching Ansible version, guaranteeing a uniform runtime for all downstream jobs. The Build Job compiles the Ansible collection into a tarball, which the Artifact Publisher stores as a GitHub‑Actions artifact. Three consumer jobs – Lint, Sanity and Unit‑Galaxy – each retrieve the built collection from the artifact store and perform static analysis, sanity checks, and unit‑test execution (with coverage) respectively; the Coverage Job then forwards the generated coverage.xml to Codecov. Finally, the All‑Green Aggregator inspects the results of all validation jobs and emits a single success/failure status that the orchestrator reports back to GitHub. External reusable workflows (ansible‑lint.yaml, sanity.yaml, unit.yaml) are imported as black‑box jobs, keeping the subsystem self‑contained while allowing reuse of community‑maintained validation logic.
Declares triggers, concurrency, and the job matrix; wires the job dependency graph for the CI pipeline.
Related Classes/Methods:
Installs the requested Python version and Ansible, providing a consistent runtime for all downstream jobs.
Related Classes/Methods:
Executes ansible‑galaxy collection build to produce a collection tarball (*.tar.gz).
Related Classes/Methods:
Uploads the built collection tarball to the GitHub‑Actions artifact store for later consumption.
Related Classes/Methods:
Runs ansible‑lint against the built collection to enforce style and best‑practice rules.
Related Classes/Methods:
.github/workflows/ansible-test.ymlansible/ansible-content-actions/.github/workflows/ansible-lint.yaml
Executes Ansible’s sanity test suite (module import, documentation checks, etc.) on the built collection.
Related Classes/Methods:
Runs the collection’s Python‑level unit tests (pytest) with coverage enabled.
Related Classes/Methods:
Publishes the coverage.xml generated by the Unit‑Galaxy job to Codecov.
Related Classes/Methods:
Inspects results of all validation jobs and emits a single success/failure status for the whole pipeline.
Related Classes/Methods:
Component for all unclassified files and utility functions (Utility functions/External Libraries/Dependencies)
Related Classes/Methods: None