ap
Apache 2.0 · open source

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.

Browse actions

Terraform Modules

39 Azure + 9 AWS root modules — Container Apps, PostgreSQL, Key Vault, Route53, CloudFront, static sites, and more.

Full catalogue

Go packages

Standalone modules under go/pkg/ — OpenObserve logging, lifecycle events, AI cost, JWT auth.

Browse packages

Shell scripts

Parameterized utilities under scripts/ — S3 state buckets, ACA certs, Terragrunt cache cleanup.

Browse scripts

Documentation

Markdown docs for each action, module, Go package, and script — conventions, inputs, usage examples.

Read docs

GitHub Actions

Workflow building blocks

Each action lives under github/action/<name>/ with its own action.yml.

View on GitHub

discord-deploy-notification

composite reusable v3.0.0

Post a Discord webhook message with a content line plus an embed — repository, branch, actor, and commit details. Uses curl + JSON, no external dependencies.

uses: kovacszsolt/actionpit/github/action/discord-deploy-notification@3.0.0 with: webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }} content: Deploy finished
Released
3.0.0

version-number

composite reusable v3.0.0

Read, bump, and persist a semantic version (X.Y.Z) stored as a GitHub Environment variable. Outputs the new version_number.

uses: kovacszsolt/actionpit/github/action/version-number@3.0.0 with: environment_name: main variable_name: APP_VERSION write_token: ${{ secrets.GH_VARIABLES_TOKEN }} bump: patch
Released
3.0.0

azure-docker-build-push

composite reusable v3.0.0

Bump semver, build, and push a Docker image to Azure Container Registry with metadata tags and layer caching. Wraps version-number and Buildx.

uses: kovacszsolt/actionpit/github/action/azure-docker-build-push@3.0.0 with: registry: myregistry.azurecr.io image_name: my-service acr_username: ${{ secrets.ACR_USERNAME }} environment_name: main variable_name: MY_SERVICE_VERSION
Released
3.0.0

frontend-pnpm-build

composite reusable v3.0.0

Install and build a pnpm Vite frontend, write dist/health.json, and upload the dist artifact.

uses: kovacszsolt/actionpit/github/action/frontend-pnpm-build@3.0.0 with: app_path: apps/settings/frontend artifact_name: frontend-dist lockfile_path: apps/settings/frontend/pnpm-lock.yaml
Released
3.0.0

frontend-s3-deploy

composite reusable v3.0.0

Download a dist artifact, sync to S3 with cache policies, and optionally invalidate CloudFront.

uses: kovacszsolt/actionpit/github/action/frontend-s3-deploy@3.0.0 with: app_path: apps/settings/frontend artifact_name: frontend-dist s3_bucket: ${{ vars.S3_BUCKET }} cloudfront_distribution_id: ${{ vars.CF_DIST_ID }}
Released
3.0.0

Azure & AWS Terraform Modules

48 modules, one repository

Root modules under terraform/modules/azure/ and terraform/modules/aws/ — shared tagging, documented conventions.

Azure catalogue → AWS catalogue →
container-app Azure

Azure Container App with ingress, scaling, container image, and secrets management.

postgresql-flexible-server Azure

Azure Database for PostgreSQL – Flexible Server with SKU, backup, networking, and auth.

key-vault Azure

Azure Key Vault with network ACLs, access policies or RBAC, optional secrets map.

ai-foundry Azure

Azure AI Services cognitive account with diagnostic settings for AI Foundry workloads.

static-website AWS

Composite S3 + ACM + CloudFront + Route53 alias stack with a GitHub Actions deploy IAM user.

route53 AWS

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>

Go docs →
openobserve Go

HTTP _json ingest client, env/meta loading, and a nil-safe structured Publisher.

oolifecycle Go

App lifecycle helpers: app.started, app.stopped, pipeline.failed.

ooai Go

AI call cost calculation (decimal math) and {service}.ai.call event publishing.

auth Go

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.

Scripts docs →
aws-s3-state.sh AWS

Create an S3 bucket for Terraform / Terragrunt remote state with versioning, encryption, and public-access block.

azure-certificate-create.sh Azure

Issue a managed certificate for an Azure Container Apps environment.

clear-terragrunt-cache.sh CLI

Remove .terragrunt-cache directories and optionally .terraform.lock.hcl files.

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.

Repository kovacszsolt/actionpit
License Apache License 2.0
Latest release 3.0.0
Actions 5 composite
Go packages go/pkg/
Scripts scripts/
Azure modules terraform/modules/azure/
AWS modules terraform/modules/aws/
Action path github/action/

Contact

Get in touch

Questions, bug reports, or ideas for new modules — feel free to reach out.