This repository contains CI/CD workflow templates and setup scripts for CyberDine Development projects.
├── scripts/
│ ├── github/ # GitHub Actions setup scripts
│ │ ├── bash/ # Bash scripts for Linux/macOS/WSL
│ │ └── powershell/ # PowerShell scripts for Windows
│ └── azure/ # Azure DevOps setup scripts
│ ├── bash/ # Bash scripts for Linux/macOS/WSL
│ └── powershell/ # PowerShell scripts for Windows
├── workflows/ # Reusable GitHub Actions workflows
├── pipelines/ # Azure DevOps pipeline templates
└── docs/ # Documentation
The easiest way - use the unified script that prompts for platform choice:
Bash (Linux/macOS/WSL):
cd scripts
./new-repo.sh my-awesome-libraryPowerShell (Windows):
cd scripts
.\New-Repo.ps1 my-awesome-libraryOr specify the platform directly:
Bash (Linux/macOS/WSL):
cd scripts/github/bash
./new-repo.sh my-awesome-libraryPowerShell (Windows):
cd scripts\github\powershell
.\New-Repo.ps1 my-awesome-libraryBash (Linux/macOS/WSL):
cd scripts/azure/bash
./new-repo.sh my-awesome-libraryPowerShell (Windows):
cd scripts\azure\powershell
.\New-Repo.ps1 my-awesome-libraryOn first run, you'll be prompted to configure your organization settings.
For setting up the entire CI/CD infrastructure and multiple repositories on GitHub:
Bash (Linux/macOS/WSL):
cd scripts/github/bash
./setup-all.shPowerShell (Windows):
cd scripts\github\powershell
.\Setup-All.ps1The scripts support configuration management with automatic setup:
- GitHub Organization: Your GitHub organization name
- Company Name: Used for package names and copyright
- WSL Path: Where repositories are cloned when using bash scripts (WSL filesystem)
- Windows Path: Where repositories are cloned when using PowerShell scripts
- Repository Visibility: Private or public repositories
- Default Branch: Branch name (always 'master', never 'main')
- Default License: Apache-2.0 or MIT
First-time behavior: Scripts will prompt you for configuration including both WSL and Windows paths, saving to config.json (gitignored).
Subsequent runs: Use the saved configuration automatically - bash scripts use WSLPath, PowerShell scripts use WindowsPath.
Cross-platform note: This dual-path approach avoids WSL file permission issues while allowing you to work with your preferred directory structure on both platforms.
The scripts create the following repositories with full CI/CD:
smart-generators- Smart code generators for .NETenhanced-enums- Enhanced enum functionalitysmart-switches- Intelligent switch expressionssmart-delegates- Smart delegate utilitiesdeveloper-kit- Comprehensive developer toolkit
- ✅ GitHub Actions workflows for CI/CD
- ✅ Nerdbank.GitVersioning with SemVer 2.0
- ✅ Security scanning (CodeQL, MSDO, Trivy)
- ✅ SBOM generation
- ✅ Branch protection rules
- ✅ Environment-based deployments
- ✅ GitHub Packages integration
- ✅ Automated dependency updates
All repositories are configured with:
- Default branch:
master - .NET 9/10 support
- Private visibility (can be changed)
- Apache-2.0 license (can be changed to MIT)
- Full security scanning
Uses Nerdbank.GitVersioning for deterministic versioning:
- Format:
MAJOR.MINOR.PATCH[-PRERELEASE]+[BUILDMETADATA] - Example:
1.0.42-alpha+g1a2b3c4
- Weekly vulnerability scanning
- Dependabot for dependency updates
- CodeQL analysis on every push
- SBOM generation for releases
Apache-2.0