Skip to content

Cross-repo CI/CD standardization — reusable workflows #7

@kristopherjturner

Description

@kristopherjturner

Summary

Create reusable GitHub Actions workflows that all solution repos can reference, reducing duplication and ensuring consistency.

Current State

Each repo has its own deploy-docs.yml workflow. They are nearly identical (Python 3.12, mkdocs-material, mkdocs-drawio, Vale). Changes to the standard require updating 4 files in 4 repos.

Proposal

Reusable Workflow (in .github or azurelocal.github.io repo)

  • deploy-mkdocs.yml — Reusable workflow for MkDocs Material site deployment
  • vale-lint.yml — Reusable workflow for Vale linting
  • powershell-lint.yml — Reusable workflow for PSScriptAnalyzer (for SOFS, AVD, vm-conversion)

Per-Repo Caller

Each repo would have a thin caller workflow:

jobs:
  docs:
    uses: AzureLocal/.github/.github/workflows/deploy-mkdocs.yml@main
    with:
      python-version: '3.12'

Benefits

  • Single source of truth for CI standards
  • Version-controlled workflow updates
  • Easier to add new capabilities (e.g., link checking, spell checking)

Prerequisites

  • Create AzureLocal/.github repo (GitHub's special org-level repo)
  • Or use azurelocal.github.io as the workflow source

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions