Skip to content

AutomationDojo/reusable-cicd

Repository files navigation

Reusable CI/CD

Documentation License

A collection of reusable GitHub Actions workflows for common CI/CD tasks. Call them from any repository with workflow_call.

Why use this?

  • DRY — Avoid duplicating CI/CD config across repositories
  • Centralized maintenance — Updates and fixes in one place
  • Battle-tested — Workflows used in production and documented
  • Drop-in — Reference the workflow, pass inputs, done

Available Workflows

Workflow Description
Actionlint Lint GitHub Actions workflows on PRs with reviewdog integration
Cloudflare Pages Cleanup Delete all Cloudflare Pages deployments for a project
Docker Build and Push Build multi-platform Docker images (AMD64/ARM64) and push to GHCR
Golang CLI Build and Test Run tests, linting, and build verification for Go CLI apps
Golang CLI Release Automate semantic versioning and GoReleaser-based releases for Go CLIs
Helm Docs Generate Helm chart documentation with helm-docs and optionally commit to PR
Helm Lint Lint Helm charts with chart-testing on pull requests
Helm Releaser Package and publish Helm charts to GitHub Pages (and optionally GHCR OCI)
MkDocs Deploy Build and deploy MkDocs sites to GitHub Pages
MkDocs + Helm Pages Build MkDocs and publish into an existing Helm Pages branch
Node Build and Test Lint, type check, and build Node.js projects on PRs
Node Release CI gate (build + lint) then semantic-release for Node.js on push to main
Simple Semantic Release Automate versioning and changelog generation with semantic-release
Terraform Docs Generate terraform-docs for changed modules and commit to PR

Quick Start

Add a job to your workflow that calls the reusable workflow:

jobs:
  lint:
    uses: AutomationDojo/reusable-cicd/.github/workflows/actionlint.yml@main

With inputs and secrets:

jobs:
  terraform-docs:
    uses: AutomationDojo/reusable-cicd/.github/workflows/terraform-docs.yml@main
    with:
      token: ${{ secrets.GITHUB_TOKEN }}
    secrets: inherit

See the full documentation for inputs, secrets, and examples per workflow.

GitHub App Setup

Workflows that push commits, tags, or releases use a GitHub App for authentication. Configure these secrets at the repository or organization level:

Secret Description
GITHUB_APP_ID GitHub App ID
GITHUB_APP_PRIVATE_KEY App private key (PEM)

Detailed setup instructions at reusable-cicd.automationdojo.org.

Documentation

Full docs at reusable-cicd.automationdojo.org.

License

Apache 2.0

Packages

 
 
 

Contributors