Reusable GitHub Actions, workflows, and CI/CD helpers for public use.
This repository centralizes common pull-request, build, release, and testing automation so projects can reference parameterized workflows or composite actions instead of copying the same YAML and shell logic into every repository.
The actions are maintained for GetDevOpsPro projects, but they are intentionally generic enough for other GitHub repositories to reuse when the workflow patterns fit.
- Reusable workflows in
.github/workflows/for pull-request creation, build pipelines, release promotion, Go linting, and all-green checks. - Composite actions for Docker Buildx Bake image builds, multi-architecture manifest publishing, and image tag promotion.
- Release helpers for version calculation, changelog generation, version-file updates, git tagging, and GitHub release updates.
- Pull request and test-label helpers for rerunning jobs and enforcing manual test confirmation labels.
- A generic command runner that can optionally upload command output as an artifact.
See .github/workflows/README.md for the reusable workflow catalog.
- All Green - wraps the all-green check as a reusable workflow.
- Build - builds and optionally publishes Docker Buildx Bake images.
- Go Lint - runs GolangCI-Lint with a pinned Go toolchain.
- Create Pull Request - checks out a target repository, runs a command, and opens or updates a PR.
- Release - calculates a version, updates version files, optionally promotes images, generates a changelog, tags, and publishes a GitHub release.
- All Green - checks that required PR checks have passed.
- Buildx Bake - single-job Docker Buildx Bake image build.
- Buildx Bake Prepare - creates a platform matrix and Docker metadata artifact.
- Buildx Bake Build - builds and pushes per-platform image digests.
- Buildx Bake Merge - merges per-platform digests into manifest lists.
- Buildx Bake Promote - promotes existing image manifests to release tags.
- Command - runs a command and optionally uploads artifacts.
- PR Job Rerun - reruns jobs for the latest completed PR workflow run.
- Release Changelog - generates and stages a git-cliff changelog.
- Release Git Push - commits release changes, tags, and pushes.
- Release Update - creates or updates a GitHub release.
- Release Version (SemVer) - resolves previous and next semantic versions.
- Release Version (CalVer) - calculates UTC calendar versions from Git release tags.
- Test Label Check - enforces required manual test labels.
- Test Done Label Added - posts confirmation when a test-done label is present.
- Test Done Label Remove - removes test-done when new commits require retesting.
- Version File - writes a version into common project files.
Use versioned references when consuming this repository from another repo:
The Build and Release workflows accept version-strategy: semver (default) or calver. CalVer follows the usage-syncer/justfile UTC YYYY.M.PATCH release calculation used as the reference for optimusclean-dev; see the CalVer action for tag selection and output formatting.
The former release/version composite action moved to release/version/semver. Direct action callers must use the new path when upgrading to a release containing this change. In both the action and reusable workflows, rename version-previous to version-semver-previous and version-next to version-semver-next; the old input names are no longer accepted. Reusable workflow paths and SemVer defaults are unchanged. Strategy-specific inputs use version-semver- or version-calver- prefixes, while settings shared by both strategies retain their generic names.
jobs:
build:
uses: getdevopspro/github-actions/.github/workflows/build.yml@v9.0.0
secrets:
registry-password: ${{ secrets.GITHUB_TOKEN }}
with:
bake-file: docker-bake.hcl
bake-target: buildComposite actions can also be used directly:
steps:
- uses: actions/checkout@v6
- uses: getdevopspro/github-actions/all-green@v9.0.0.github/workflows/- reusable workflow definitions and their catalog README.buildx-bake/- Docker Buildx Bake actions for prepare, build, merge, promote, and single-job build flows.release/- release versioning, changelog, git push, and GitHub release update actions.pr/- pull request workflow helpers, including job reruns.test/label/- test-required and test-done label automation.command/- run a command and optionally upload artifacts.version-file/- update version values in common project files.all-green/- check that required pull-request checks have passed.
The repository publishes versioned semantic version tags. Update consumers to a stable tag instead of a moving branch. The Makefile contains the local release helpers used to update workflow references and tag new releases.
Keep new actions small, parameterized, and reusable. Prefer wrapping well-maintained upstream actions when they cover the need; add custom composite logic here when a shared workflow needs behavior that should stay consistent across repositories.
Run make test-version for local version-calculation regression tests. They require Python 3, Bash, Git, and GNU sort, and use temporary repositories without contacting external services.
Run make test-changelog for changelog initialization and release-note regression tests. These also require git-cliff (tested with 2.14.1); set GIT_CLIFF_BIN to use a specific binary. Tests use temporary repositories and disable network access.
For workflow lint, actionlint currently does not recognize GitHub's $/ references. Until supported, use actionlint -ignore 'specifying action "\$/release/version/(semver|calver)" in invalid format because ref is missing' and verify those two action paths locally.