GitHub Actions Suite
A collection of reusable GitHub Actions that automate common CI/CD tasks across different tech stacks.
Overview
While building CI/CD pipelines for various projects, I kept repeating the same patterns. Docker builds, Go releases, PowerShell packaging - all requiring similar setup with GitVersion integration, proper tagging, and artifact management. Copy-pasting workflow configurations across repositories got old fast.
The solution was to build reusable GitHub Actions that encapsulate these patterns. Now I can maintain the logic in one place and use it consistently across all my projects with minimal configuration.
The Problem
CI/CD pipelines share common requirements:
- Semantic versioning based on Git history
- Building and publishing artifacts (binaries, containers, packages)
- Proper tagging and release management
- Signing and checksumming for security
But each project type (Go, Docker, PowerShell) has its own tooling and quirks. You end up with hundreds of lines of duplicated YAML across repositories, each slightly different and prone to drift.
The Solution
This suite of GitHub Actions standardizes CI/CD workflows across different tech stacks. Each action handles a specific build and release pattern:
- GitVersion Tag: Automatically calculate semantic versions and tag repositories based on Git history
- Docker Release: Build and publish multi-platform container images
- Go Build and Release: Lint, build, sign, and release Go binaries with GoReleaser
- PowerShell Module Publisher: Package and publish PowerShell modules to NuGet
- PowerShell Script Packager: Convert PowerShell scripts into standalone executables
All actions integrate with GitVersion for consistent semantic versioning and require minimal configuration to use.
Why It Matters
Reusable GitHub Actions reduce maintenance burden and ensure consistency. When you fix a bug or add a feature to an action, every project using it benefits immediately. No more hunting through dozens of repositories to update workflow files.
More importantly, it lowers the barrier for new projects. Setting up a complete CI/CD pipeline becomes a matter of adding a few lines to your workflow file instead of configuring dozens of steps.
The Actions
GitVersion Tag Automated semantic versioning and Git tagging based on repository history and branching strategy.
Docker Release Action Builds and publishes Docker images with automatic versioning, multi-platform support, and flexible tagging strategies.
Go Build and Release Complete Go release pipeline with linting, PGP signing, multi-platform builds, and GitHub Releases integration using GoReleaser.
Kustomize Build Check Intelligent validation of Kustomize configurations in GitHub Actions with automatic dependency tracking and smart change detection.
PowerShell Module Publisher Automates PowerShell module publication to NuGet with manifest generation, testing, and versioning.
PowerShell Script Packager Converts PowerShell scripts into standalone Windows executables with embedded versioning and automatic artifact uploads.
Getting Started
All actions are available on the GitHub Marketplace. Each action's documentation page includes usage examples and configuration details.
The typical workflow is:
- Add a
gitversion.ymlconfiguration to your repository - Create a GitHub workflow file
- Reference the appropriate action with minimal inputs
- Set up required secrets (API keys, tokens, signing keys)
The actions handle the rest - versioning, building, signing, tagging, and publishing.
Common Patterns
All actions in this suite share these characteristics:
- GitVersion integration: Semantic versioning based on your Git history
- Minimal configuration: Sensible defaults with optional overrides
- Reusability: Use across multiple projects without modification
- Composability: Combine actions to create complex workflows
- Security first: Support for artifact signing and secure credential management
TIP
These actions work best when combined. For example, you might use the Go Build and Release action to create a binary, then use Docker Release to containerize it - all with consistent versioning.
Repository Links
All actions are open source and available on GitHub:
- GitVersion Tag Action
- Docker Release Action
- Go Build and Release
- Kustomize Build Check Action
- PowerShell Module Publisher
- PowerShell Script Packager
Contributions, issues, and feature requests are welcome.
