https://github.com/joel-grant/github-actions
A repository of my own reusable GitHub Actions for various pipeline CI/CD processes. Created and Managed by Terraform.
https://github.com/joel-grant/github-actions
cd ci github-actions templates
Last synced: 11 months ago
JSON representation
A repository of my own reusable GitHub Actions for various pipeline CI/CD processes. Created and Managed by Terraform.
- Host: GitHub
- URL: https://github.com/joel-grant/github-actions
- Owner: joel-grant
- Created: 2025-07-13T22:26:43.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-23T02:11:55.000Z (11 months ago)
- Last Synced: 2025-07-23T04:10:50.442Z (11 months ago)
- Topics: cd, ci, github-actions, templates
- Homepage:
- Size: 28.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π Some Reusable GitHub Actions CI/CD Pipelines
Welcome to my personal collection of reusable GitHub Actions workflows! This repository contains a comprehensive set of CI/CD pipelines that I've developed to automate the entire software development lifecycle of my own projects - from testing and linting to building, deploying, and maintaining applications in production.
## π― What's Inside
This collection includes battle-tested workflows for:
- **π§ͺ Testing & Quality Assurance** - Automated testing and code quality checks
- **π Linting & Security** - Code style enforcement and security auditing
- **ποΈ Container Building** - Docker image building and registry publishing
- **βΈοΈ Kubernetes Deployments** - Automated deployments to Kubernetes clusters
- **π¦ Release Management** - Automated versioning and release creation
- **βοΈ Infrastructure Maintenance** - Cluster maintenance and monitoring
All workflows are designed to be **reusable**, **configurable**, and **production-ready**.
## ποΈ Architecture
### Reusable Workflows
Located in `.github/workflows/`, these workflows can be called from any repository:
- **`test-lint-rails.yaml`** - Comprehensive Rails testing with PostgreSQL, security audits, and code quality reports
- **`build-push.yaml`** - Multi-platform Docker image building and registry publishing
- **`deploy.yaml`** - Kubernetes deployments with Helm charts and environment management
- **`release-please.yaml`** - Automated version bumping and release creation
### Templates
The `templates/` directory contains ready-to-use examples showing how to consume these workflows in your own projects.
## π Quick Start
### 1. Using a Reusable Workflow
Copy any template from the `templates/` directory and customize it for your project:
```yaml
# Example: .github/workflows/ci.yaml
name: CI Pipeline
on: [push, pull_request]
jobs:
test:
uses: joel-grant/github-actions/.github/workflows/test-lint-rails.yaml@main
with:
repo_name: "my-awesome-app"
secrets:
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }}
```
### 2. Available Templates
- **`rails-test-lint-template.yaml`** - Complete Rails CI pipeline
- **`build-push-template.yaml`** - Docker build and publish
- **`deploy-template.yaml`** - Kubernetes deployment
- **`release-template.yaml`** - Automated releases
## π Features
### π§ Rails Testing Pipeline
- **Multi-service testing** with PostgreSQL and external APIs
- **Security auditing** with Bundler Audit and Brakeman
- **Code quality** analysis with RubyCritic
- **Configurable linting** with RuboCop (optional)
- **GitHub Pages** integration for quality reports
### π³ Container Operations
- **Multi-platform builds** (AMD64, ARM64)
- **Semantic tagging** with commit hashes and latest
- **Registry flexibility** (DockerHub, private registries)
- **Build optimization** with Docker Buildx
### βΈοΈ Kubernetes Deployments
- **Environment-specific** deployments (prod, staging, dev)
- **Helm chart** integration with value customization
- **Secret management** for sensitive configuration
- **Rolling deployments** with health checks
### π Release Management
- **Conventional commits** for automated versioning
- **Changelog generation** from commit messages
- **Multi-package** support with release-please
- **GitHub Releases** with automated assets
## π οΈ Configuration
Each workflow accepts inputs and secrets for maximum flexibility. Check the templates for complete configuration examples, including:
- Database connections and service dependencies
- Container registry credentials
- Kubernetes cluster access
- Environment-specific variables
- Security and monitoring integrations
## π€ Contributing & Usage
**This is a demo/personal project**, but you're absolutely welcome to:
- β¨ **Use these workflows** in your own projects
- π¨ **Draw inspiration** for your CI/CD pipelines
- π§ **Adapt and modify** them for your specific needs
- π‘ **Share feedback** or suggestions for improvements
- π **Report issues** if you find any problems
No attribution required, but always appreciated!
## π Documentation
Detailed documentation for each workflow can be found in the template files, including:
- Required secrets and environment variables
- Configuration options and examples
- Prerequisites and setup instructions
- Common usage patterns and best practices
## π·οΈ Workflow Status
All workflows are actively maintained and tested in production environments. They follow GitHub Actions best practices and are designed for reliability and scalability.
---
**Happy Automating!** π
*Feel free to explore, use, and adapt these workflows for your own projects. If you find them helpful, consider starring the repository or sharing it with others who might benefit from these automation patterns.*