diff --git a/.github/workflows/README.md b/.github/workflows/README.md new file mode 100644 index 00000000000..7fd2ed04d1a --- /dev/null +++ b/.github/workflows/README.md @@ -0,0 +1,48 @@ +# GitHub Actions Workflow Naming Conventions + +This document outlines the naming conventions for GitHub Actions workflows within +this repository. Adhering to these conventions helps maintain clarity and +consistency for maintainers and automated systems. + +The workflows are categorized into four groups, identified by their file name +prefixes. + +## 1. Reusable Workflows (`_*.yml`) + +**Pattern:** `_*.yml` + +Files prefixed with an underscore (`_`) are modular workflows intended to be +called by other workflows (using `workflow_call`). They encapsulate common +build steps or testing logic to reduce duplication. + +* **Example:** `_build.yml` (Generic build logic used by multiple SDKs) + +## 2. Infrastructure Workflows (`infra.*.yml`) + +**Pattern:** `infra..yml` + +Workflows in this category handle general CI/CD infrastructure tasks. They are +not specific to a single SDK but support the overall repository health, +compliance, and tooling. + +* **Example:** `infra.check.yml` (Runs repo-wide style and quality checks) + +## 3. Release Workflows (`release.*.yml`) + +**Pattern:** `release..[method].yml` + +These workflows manage the building and testing of SDK releases. They +typically handle interactions with package managers (CocoaPods, SPM) or generate +release artifacts (Zip). + +* **Example:** `release.cocoapods.yml` (Manages CocoaPods release testing) + +## 4. SDK-Specific Workflows (`sdk.*.yml`) + +**Pattern:** `sdk.[.suffix].yml` + +These workflows are dedicated to building and testing specific Firebase SDKs. + +* **Basic:** `sdk..yml` (e.g., `sdk.auth.yml`) - Standard CI for the SDK. +* **Nightly:** `sdk..nightly.yml` - Scheduled, resource-intensive tests. +* **Integration:** `sdk..integration.yml` - Integration-specific test suites.