Skip to content

camaraproject/tooling

Repository files navigation

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.

About

Repository for organization wide tooling in CAMARA, supporting Commonalities, e.g. reusable linting workflows

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors