Welcome to the Soltania DevOps Centralized Library. This repository functions as a Shared Service for CI/CD pipelines, acting as the Single Source of Truth for automation logic across the organization's ecosystem.
As a Solutions Architect, this repository allows me to:
- Enforce Governance: Ensure all projects adhere to the same security and testing standards.
- Implement DRY Principles: Define pipeline logic once, apply it everywhere.
- Accelerate Delivery: Developers focus on code, not on configuring YAML files.
The following diagram illustrates the relationship between this centralized template repository and the consumer repositories ("Satellite Repos").
graph TD
subgraph "Centralized Hub (This Repo)"
HUB[<b>soltania-devops-templates</b>]:::hub
NODE(Node.js Workflow):::templ
PY(Python Workflow):::templ
TF(Terraform Workflow):::templ
HUB --- NODE
HUB --- PY
HUB --- TF
end
subgraph "Consumer Ecosystem"
R1["<b>Functional Tests</b><br/>(Bruno/API)"]:::consumer
R2["<b>Infra Governance</b><br/>(GitHub Provider)"]:::consumer
R3["<b>Future Projects</b>"]:::consumer
end
R1 -.->|Inherits| TF
R2 -.->|Inherits| TF
R3 -.->|Inherits| NODE
classDef hub fill:#2c3e50,stroke:#fff,stroke-width:2px,color:#fff
classDef templ fill:#34495e,stroke:#95a5a6,color:#fff
classDef consumer fill:#27ae60,stroke:#fff,stroke-width:2px,color:#fff
To use a workflow, create a YAML file in your repository (e.g., .github/workflows/ci.yml) and reference the specific template.
Standardized pipelines for building, testing, and linting application code.
Features: Dependencies caching (npm ci), Linting, Unit Tests.
| Input | Description | Default |
|---|---|---|
node-version |
The specific Node.js version to use. | 20 |
working-dir |
The directory containing package.json. | . |
jobs:
build:
uses: soltani-a/soltania-platform-workflows/.github/workflows/nodejs-ci-template.yml@main
secrets: inherit
with:
node-version: '20'Features: Dependency installation, Flake8 Linting, Pytest execution.
| Input | Description | Default |
|---|---|---|
python-version |
The specific Python version to use. | 3.10 |
working-dir |
Root directory of the python project. | . |
jobs:
test:
uses: soltani-a/soltania-platform-workflows/.github/workflows/python-ci-template.yml@main
secrets: inherit
with:
python-version: '3.10'Workflows for managing cloud resources and state with strict validation.
Features: fmt check, validate, tflint analysis, and plan generation.
| Input | Description | Default |
|---|---|---|
tf-version |
The Terraform version to use. | latest |
working-dir |
Directory containing main.tf. | . |
jobs:
terraform:
uses: soltani-a/soltania-platform-workflows/.github/workflows/terraform-ci-template.yml@main
secrets: inherit
with:
tf-version: '1.5.0'This section demonstrates the scalability of this architecture. The following repositories currently rely on these centralized templates for their CI/CD:
| Repository | Domain | Template Used | Purpose |
|---|---|---|---|
| soltania-devops-tf-functional-test-bruno | π§ͺ QA / Testing | Terraform |
Automating functional API testing using the Bruno CLI tool. |
| soltania-devops-tf-github-prototype | π‘οΈ Governance | Terraform |
Managing GitHub repositories, teams, and permissions via IaC. |
Contributions are welcome! If you wish to add a new workflow or improve an existing one, please follow these steps:
- Fork the repository.
- Create a Feature Branch (
git checkout -b feature/new-template). - Test Locally using
nektos/actor a private fork. - Open a Pull Request.
Please refer to CONTRIBUTING.md and CODE_OF_CONDUCT.md for more details.
This project is licensed under the MIT License - see the LICENSE file for details.