Centralized, reusable GitHub Actions workflows for the infinite-automations organization.
π Documentation
- Centralize workflow maintenance β action updates, tests, and releases in one place
- Standardize CI/CD patterns across all repositories
| Workflow | Description |
|---|---|
lint.yml |
Linting via Super-Linter with file-based config |
build-dotnet.yml |
.NET restore, build, test, publish with artifact upload |
docker.yml |
Docker build & push with metadata, Buildx, and GHA cache |
oras-tag.yml |
OCI image retagging via ORAS (retag without rebuild) |
oci-push.yml |
Pack directory into .tgz and push to OCI registry via ORAS |
helm-push.yml |
Package and push Helm charts to OCI registries |
deploy-helm.yml |
Helm deployment with optional registry/kubeconfig auth |
docs-action.yml |
Documentation for GitHub Actions/Workflows via action-docs |
docs-terraform.yml |
Documentation for Terraform modules via terraform-docs |
docs-mkdocs.yml |
MkDocs site build + GitHub Pages deployment |
release.yml |
Semantic Release with configurable plugins |
| Workflow | Composes | Use Case |
|---|---|---|
ci-action.yml |
lint β docs β release | GitHub Action repos without custom tests |
ci-terraform-module.yml |
lint β docs β release | Terraform module repos without custom tests |
| ci-dotnet.yml | lint β build β docker β release | .NET application repos |
| cd-docker-helm.yml | retag β deploy | Docker + Helm deployment (release-triggered) |
Note: Toplevel workflows do not include test jobs. GitHub Actions requires
uses:to be a static string, so custom test workflows cannot be dynamically referenced. Run your tests before or alongside the toplevel workflow.
name: CI
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
permissions: {}
jobs:
lint:
uses: infinite-automations/workflows/.github/workflows/lint.yml@v1.3.1
permissions:
contents: read
packages: read
statuses: write
test:
needs: [lint]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- run: echo "your tests here"
release:
needs: [lint, test]
uses: infinite-automations/workflows/.github/workflows/release.yml@v1.3.1
with:
dry-run: ${{ github.event_name == 'pull_request' }}
secrets: inherit
permissions:
contents: write
issues: write
pull-requests: writename: CI
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
ci:
uses: infinite-automations/workflows/.github/workflows/ci-action.yml@v1.3.1
with:
dry-run: ${{ github.event_name == 'pull_request' }}
secrets: inheritCreate .github/linters/.super-linter.env to configure Super-Linter:
VALIDATE_GITHUB_ACTIONS=true
VALIDATE_GITHUB_ACTIONS_ZIZMOR=true
VALIDATE_YAML=trueThe same file is used for local linting via Docker.
./scripts/lint-local.shOr directly with Docker:
docker run --rm \
-e RUN_LOCAL=true \
-e DEFAULT_BRANCH=main \
--env-file .github/linters/.super-linter.env \
-v "$(pwd):/tmp/lint" \
ghcr.io/super-linter/super-linter:v8.6.0- Composable β baseline workflows are independent building blocks
- Configurable β no hardcoded parameters; all via inputs, secrets, and env files
- Dry-run β every workflow supports
dry-run: truefor PR validation - Consistent β inputs use
kebab-case, secrets useUPPER_SNAKE_CASE - Observable β every workflow writes a standardized
$GITHUB_STEP_SUMMARY - Secure β all actions pinned to SHA, minimal permissions
Full documentation is available at the GitHub Pages site.
No requirements.
No providers.
No modules.
No resources.
No inputs.
No outputs.