Skip to content

ci(openapi): add openapi-validate workflow (PR #5 natural follow-up)#12

Open
estebanzimanyi wants to merge 1 commit into
feat/openapi-generatorfrom
feat/openapi-validator-gate
Open

ci(openapi): add openapi-validate workflow (PR #5 natural follow-up)#12
estebanzimanyi wants to merge 1 commit into
feat/openapi-generatorfrom
feat/openapi-validator-gate

Conversation

@estebanzimanyi
Copy link
Copy Markdown
Member

Adds a CI gate that runs the full regenerate path on every PR touching the parser, generator, meta files, or generate_openapi.py, and validates the produced output/meos-openapi.json against the OpenAPI 3.1 specification with openapi-spec-validator.

Trigger

  • PRs touching parser/**, generator/**, meta/**, generate_openapi.py, run.py, requirements.txt, or the workflow itself.
  • Push to master (post-merge sanity).
  • workflow_dispatch.

Behaviour

The workflow installs the same libclang sysroot dev-header set as MobilityAPI's vendor-drift workflow (so the two regenerate paths produce byte-identical catalogs), clones MobilityDB master for MEOS headers, runs run.py then generate_openapi.py, and validates the projection.

The generated meos-openapi.json is uploaded as a workflow artefact so downstream consumers (MobilityAPI vendor-drift, PyMEOS-CFFI codegen, MobilityDuck binding generator) can pin to a specific build without re-running the generator.

Dependency

Stacks on #5 (feat/openapi-generator) — the workflow needs generate_openapi.py to exist. When #5 lands, this PR's base reverts to master.

@estebanzimanyi estebanzimanyi force-pushed the feat/openapi-validator-gate branch 4 times, most recently from 420f869 to 65b79bb Compare May 20, 2026 18:55
Runs the full regenerate path on every PR touching the parser, generator,
meta files, or generate_openapi.py:

- libclang sysroot install (matches MobilityAPI vendor-drift)
- clone MobilityDB master for MEOS headers
- run.py + generate_openapi.py
- openapi-spec-validator against OpenAPI 3.1
- upload meos-openapi.json as an artefact

Catches OpenAPI 3.1 violations the moment a generator change introduces
them, instead of letting downstream consumers (MobilityAPI vendor-drift,
PyMEOS-CFFI codegen, MobilityDuck binding generator) discover them
later. Named as a 'natural follow-up' in PR #5's body.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant