Building blocks for
CI/CD, cloud infra & Go
Reusable GitHub Actions, opinionated Azure & AWS Terraform modules, Go packages, and shell scripts — drop them in, skip the glue code.
What's inside
Everything lives in the repo
No hidden platform, no lock-in. Browse the source, copy what you need, wire it in.
GitHub Actions
Composite actions under github/action/ — reference by tag in any workflow.
Terraform Modules
39 Azure + 9 AWS root modules — Container Apps, PostgreSQL, Key Vault, Route53, CloudFront, static sites, and more.
Full catalogueGo packages
Standalone modules under go/pkg/ — OpenObserve logging, lifecycle events, AI cost, JWT auth.
Shell scripts
Parameterized utilities under scripts/ — S3 state buckets, ACA certs, Terragrunt cache cleanup.
Documentation
Markdown docs for each action, module, Go package, and script — conventions, inputs, usage examples.
Read docsGitHub Actions
Workflow building blocks
Each action lives under github/action/<name>/ with its own action.yml.
Post a Discord webhook message with a content line plus an embed — repository, branch, actor, and commit details. Uses curl + JSON, no external dependencies.
Read, bump, and persist a semantic version (X.Y.Z) stored as a GitHub Environment variable. Outputs the new version_number.
Bump semver, build, and push a Docker image to Azure Container Registry with metadata tags and layer caching. Wraps version-number and Buildx.
Install and build a pnpm Vite frontend, write dist/health.json, and upload the dist artifact.
Download a dist artifact, sync to S3 with cache policies, and optionally invalidate CloudFront.
Azure & AWS Terraform Modules
48 modules, one repository
Root modules under terraform/modules/azure/ and terraform/modules/aws/ — shared tagging, documented conventions.
Azure Container App with ingress, scaling, container image, and secrets management.
Azure Database for PostgreSQL – Flexible Server with SKU, backup, networking, and auth.
Azure Key Vault with network ACLs, access policies or RBAC, optional secrets map.
Azure AI Services cognitive account with diagnostic settings for AI Foundry workloads.
Composite S3 + ACM + CloudFront + Route53 alias stack with a GitHub Actions deploy IAM user.
Hosted zone (create or reuse) plus alias / CNAME / TXT / MX records for DNS stacks.
Go packages
Standalone modules under go/pkg
Import path: github.com/kovacszsolt/actionpit/go/pkg/<package>
HTTP _json ingest client, env/meta loading, and a nil-safe structured Publisher.
App lifecycle helpers: app.started, app.stopped, pipeline.failed.
AI call cost calculation (decimal math) and {service}.ai.call event publishing.
HS256 JWT verification (iss=auth-ba) plus optional Echo Bearer middleware.
Shell scripts
Parameterized CLI utilities
Standalone scripts under scripts/ — dry-run, help, env fallbacks.
Create an S3 bucket for Terraform / Terragrunt remote state with versioning, encryption, and public-access block.
Issue a managed certificate for an Azure Container Apps environment.
Remove .terragrunt-cache directories and optionally .terraform.lock.hcl files.
Documentation
Markdown, in the repo
Readable on GitHub — no external docs site.
About
What is actionpit?
actionpit is a personal open-source collection of reusable DevOps building blocks — GitHub Actions, opinionated Azure & AWS Terraform modules, Go packages, and shell scripts, all living in a single public repository.
The goal is simple: stop rewriting the same glue code across projects. Each action, module, package, and script is documented, versioned, and designed to be referenced directly from your own workflows or stacks — no package registry, no hidden platform.
Everything is licensed under Apache 2.0. Fork it, copy it, adapt it.
Contact
Get in touch
Questions, bug reports, or ideas for new modules — feel free to reach out.