Skip to content

infinite-automations/workflows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Reusable Workflows

Release

Centralized, reusable GitHub Actions workflows for the infinite-automations organization.

πŸ“– Documentation

Purpose

  1. Centralize workflow maintenance β€” action updates, tests, and releases in one place
  2. Standardize CI/CD patterns across all repositories

Available Workflows

Baseline (Composable Building Blocks)

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

Toplevel (Convenience Compositions)

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.

Quick Start

Compose Baselines (Recommended for repos with tests)

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: write

Use Toplevel Workflow (Simple repos)

name: 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: inherit

Configuration

Linting

Create .github/linters/.super-linter.env to configure Super-Linter:

VALIDATE_GITHUB_ACTIONS=true
VALIDATE_GITHUB_ACTIONS_ZIZMOR=true
VALIDATE_YAML=true

The same file is used for local linting via Docker.

Local Linting

./scripts/lint-local.sh

Or 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

Design Principles

  • 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: true for PR validation
  • Consistent β€” inputs use kebab-case, secrets use UPPER_SNAKE_CASE
  • Observable β€” every workflow writes a standardized $GITHUB_STEP_SUMMARY
  • Secure β€” all actions pinned to SHA, minimal permissions

Documentation

Full documentation is available at the GitHub Pages site.

License

MIT

Requirements

No requirements.

Providers

No providers.

Modules

No modules.

Resources

No resources.

Inputs

No inputs.

Outputs

No outputs.

About

reusable workflows

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors