← Back to all products
$29
CI/CD Pipeline Kit
CI/CD pipeline templates for GitHub Actions, GitLab CI, and Jenkins with multi-env deployment.
JSONMarkdownPythonDockerGitHub ActionsCI/CD
📄 Product Preview
Try the interactive reader and demo tools below, or get the full product with all content unlocked.
📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample📁 File Structure 10 files
ci-cd-pipeline-kit/
├── LICENSE
├── README.md
├── examples/
│ ├── node_project.json
│ └── project_config.json
├── free-sample.zip
├── guide/
│ ├── 01_features.md
│ ├── 02_configuration-reference.md
│ └── 03_examples.md
├── index.html
└── src/
└── pipeline_generator.py
📖 Documentation Preview README excerpt
CI/CD Pipeline Kit
Part of the Deploy Kit by CodeVault
Generate production-ready GitHub Actions and GitLab CI pipeline configurations from a simple JSON project spec. Stop copy-pasting YAML from Stack Overflow — get correct pipelines in seconds.
Features
- Generate GitHub Actions workflows (
.github/workflows/*.yml) - Generate GitLab CI pipelines (
.gitlab-ci.yml) - Supports Python, Node.js, Go, and Rust project types
- Built-in stages: lint, test, build, deploy
- Environment-aware: generates dev, staging, and production deploy jobs
- Docker build & push steps with configurable registry
- Caching configured out of the box (pip, npm, cargo, go mod)
- Secrets and environment variables handled via template placeholders
- Validates your project config before generating
- Python stdlib only — zero dependencies
Quick Start
# Generate a GitHub Actions workflow from the example config
python src/pipeline_generator.py --config examples/project_config.json --platform github
# Generate a GitLab CI pipeline instead
python src/pipeline_generator.py --config examples/project_config.json --platform gitlab
# Write output to a file
python src/pipeline_generator.py --config examples/project_config.json --platform github --output .github/workflows/ci.yml
# Validate config without generating
python src/pipeline_generator.py --config examples/project_config.json --validate-only
# Include Docker build steps
python src/pipeline_generator.py --config examples/project_config.json --platform github --docker
Configuration Reference
Create a JSON file with these fields:
| Field | Type | Required | Description |
|---|---|---|---|
project_name | string | Yes | Project name (used in workflow naming) |
language | string | Yes | python, node, go, or rust |
language_version | string | No | Language version (e.g., "3.11", "20") |
test_command | string | No | Custom test command (auto-detected if omitted) |
lint_command | string | No | Custom lint command |
build_command | string | No | Custom build command |
branches | array | No | Branches to trigger CI (default: ["main"]) |
environments | array | No | Deploy environments (e.g., ["staging", "production"]) |
docker | object | No | Docker config: registry, image_name, dockerfile |
notifications | object | No | Slack/email notification config |
cache_enabled | bool | No | Enable dependency caching (default: true) |
artifacts | array | No | Paths to upload as build artifacts |
CLI Reference
| Flag | Description |
... continues with setup instructions, usage examples, and more.
📄 Code Sample .py preview
src/pipeline_generator.py
#!/usr/bin/env python3
"""
CI/CD Pipeline Generator — Deploy Kit by DataNest
Generate production-ready GitHub Actions and GitLab CI pipeline configurations
from a simple JSON project specification. Supports Python, Node.js, Go, and
Rust projects with built-in caching, Docker builds, and multi-environment
deployment stages.
Why this exists:
Writing CI/CD pipelines from scratch is tedious. You end up copying YAML
from docs, fighting indentation, and forgetting to set up caching. This
tool generates correct, production-ready pipelines from a simple config
so you can focus on shipping code instead of debugging YAML.
Usage:
python pipeline_generator.py --config project.json --platform github
python pipeline_generator.py --config project.json --platform gitlab
python pipeline_generator.py --config project.json --platform github --docker
License: MIT
"""
from __future__ import annotations
import argparse
import json
import logging
import sys
from dataclasses import dataclass, field
from pathlib import Path
from typing import Any
# ---------------------------------------------------------------------------
# Constants
# ---------------------------------------------------------------------------
SUPPORTED_LANGUAGES = {"python", "node", "go", "rust"}
SUPPORTED_PLATFORMS = {"github", "gitlab"}
# Default commands per language — used when user doesn't specify custom ones
LANGUAGE_DEFAULTS: dict[str, dict[str, str]] = {
"python": {
"version": "3.11",
"install": "pip install -r requirements.txt",
"lint": "python -m py_compile src/*.py",
"test": "python -m pytest tests/ -v",
"build": "python -m build",
"cache_path": "~/.cache/pip",
"cache_key": "pip-${{ hashFiles('requirements.txt') }}",
# ... 644 more lines ...