This repository contains reusable GitHub Actions workflows for Puppet infrastructure projects.
Automated validation and release workflows for Puppet modules with semantic versioning.
- Workflows:
validate.yml,release.yml - Features: YAML/JSON/Puppet lint, syntax checks, semantic-release, CHANGELOG generation
- Documentation
- Examples
Minimal YAML validation for Puppet Hieradata repositories.
- Workflow:
validate.yml - Features: yamllint with Hiera-friendly defaults
- Documentation
- Examples
Validation for Puppet Control Repositories (R10K/Code Manager).
- Workflow:
validate.yml - Features: Puppetfile syntax, hiera.yaml validation, site modules validation
- Documentation
- Examples
- Choose the workflow type for your repository
- Copy the example CI workflow from
examples/to your repository - Update the workflow reference to point to this repository
- Follow the specific documentation for your workflow type
.
├── .github/workflows/
│ ├── puppet-module-validate.yml # Module validation
│ ├── puppet-module-release.yml # Semantic release
│ ├── hieradata-validate.yml # YAML validation
│ ├── control-repo-validate.yml # Control-repo validation
│ ├── puppet-module/
│ │ └── README.md # Documentation
│ ├── hieradata/
│ │ └── README.md # Documentation
│ └── control-repo/
│ └── README.md # Documentation
│
├── examples/
│ ├── puppet-module/
│ │ ├── ci.yml # Example workflow
│ │ └── .releaserc.yml # Semantic-release config
│ ├── hieradata/
│ │ ├── ci.yml # Example workflow
│ │ └── .yamllint # yamllint config
│ └── control-repo/
│ └── ci.yml # Example workflow
│
└── README.md # This file
# In your repository: .github/workflows/ci.yml
name: CI
on:
push:
branches: [main, develop]
pull_request:
jobs:
validate:
uses: YOUR_ORG/github-workflows/.github/workflows/WORKFLOW_NAME.yml@mainReplace:
YOUR_ORG/github-workflowswith your repository path (e.g.,slauger/github-workflows)WORKFLOW_NAMEwith one of:puppet-module-validate,puppet-module-releasehieradata-validatecontrol-repo-validate
Contributions welcome! Please ensure:
- Workflows are tested
- Documentation is updated
- Examples are provided
MIT