Skip to content

Latest commit

 

History

History
175 lines (135 loc) · 8.02 KB

File metadata and controls

175 lines (135 loc) · 8.02 KB

tooling

Repository to develop and provide shared tooling across the CAMARA project and its API repositories.

Maintained under the supervision of Commonalities Working Group.

Purpose

This repository provides:

  • Reusable GitHub workflows for API repositories (linting, validation, release automation)
  • Shared GitHub Actions with cross-repository value
  • Validation scripts and schemas for release planning
  • Release automation for API repository releases
  • Configuration files and documentation for workflows

Scope

Belongs here:

  • Reusable CI workflows consumed by API repositories
  • Shared GitHub Actions used by workflows
  • Validation scripts, schemas, and configuration
  • Supporting documentation for the above

Does not belong here:

  • Project-wide campaigns (see project-administration)
  • Cross-repository orchestration
  • Authoritative project-level data

Current Content

Linting

OpenAPI and test definition linting using Spectral and other linters.

Caller Workflow Templates

Templates for API repositories to add to their .github/workflows/ folder:

Validation

Schema and semantic validation for release planning files.

Release Plan Validation

Validates release-plan.yaml and release-metadata.yaml files against CAMARA schemas.

# Basic validation
python3 validation/scripts/validate-release-plan.py path/to/release-plan.yaml

# With file existence checks
python3 validation/scripts/validate-release-plan.py release-plan.yaml --check-files

API Review (Deprecated)

Legacy API review validation system (Fall25 meta-release specific).

  • Location: api-review/, scripts/
  • Status: Deprecated - not maintained for future releases
  • Workflow: api-review-reusable.yml

Release Automation

Automated release workflow for CAMARA API repositories, handling release planning, snapshot creation, review PR generation, changelog updates, and publication.

Shared Actions

Reusable GitHub Actions for cross-repository use.

  • Location: shared-actions/
  • Actions:
    • validate-release-plan — release-plan.yaml schema and semantic validation
    • create-snapshot — create release snapshot branches
    • derive-release-state — determine release state from repository artifacts
    • post-bot-comment — post formatted bot comments on issues
    • sync-release-issue — synchronize release issue state and body
    • update-issue-section — update marked sections in issue bodies
    • update-readme-release-info — update README release information block

Repository Structure

tooling/
├── .github/
│   └── workflows/               # Reusable workflows (public interface)
│       ├── api-review-reusable.yml  # Deprecated
│       ├── pr_validation.yml
│       ├── release-automation-reusable.yml
│       ├── spectral-oas.yml
│       └── update-floating-tag.yml
├── api-review/                  # Deprecated
│   ├── docs/
│   └── workflows/
├── linting/
│   ├── config/                  # Spectral and linting configuration
│   ├── docs/
│   └── workflows/               # Caller workflow templates
├── release_automation/
│   ├── config/                  # Transformation rules
│   ├── docs/                    # Setup, architecture, branching model
│   ├── scripts/                 # Python modules
│   ├── templates/               # Mustache templates
│   ├── tests/                   # Unit tests (565 tests)
│   └── workflows/               # Caller workflow template
├── scripts/                     # Deprecated
│   └── api_review_validator_v0_6.py
├── shared-actions/
│   ├── create-snapshot/
│   ├── derive-release-state/
│   ├── post-bot-comment/
│   ├── sync-release-issue/
│   ├── update-issue-section/
│   ├── update-readme-release-info/
│   └── validate-release-plan/
└── validation/
    ├── schemas/                 # JSON/YAML schemas
    │   ├── release-plan-schema.yaml
    │   └── release-metadata-schema.yaml
    └── scripts/
        └── validate-release-plan.py

Release Information

The latest release is v0.3.0.

  • API repositories reference the v0 floating tag, which tracks the latest stable release
  • CAMARA Release Automation is included since v0.3.0 (see repository-setup.md for onboarding)
  • Tested versions are in the main branch
  • Versions under development are in feature branches

Contributing

Maintained by Commonalities Working Group.