Skip to content

ci(openapi): add an openapi-validate workflow#12

Merged
estebanzimanyi merged 1 commit into
masterfrom
feat/openapi-validator-gate
Jul 7, 2026
Merged

ci(openapi): add an openapi-validate workflow#12
estebanzimanyi merged 1 commit into
masterfrom
feat/openapi-validator-gate

Conversation

@estebanzimanyi

@estebanzimanyi estebanzimanyi commented May 20, 2026

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 libclang sysroot dev-header set that MEOS depends on (so types like size_t, json_object *, GSERIALIZED * resolve to their real names instead of degrading to int), clones MobilityDB master for the MEOS headers, runs run.py then generate_openapi.py, and validates the projection against the OpenAPI 3.1 spec — failing the build if the document does not conform.

The generated meos-openapi.json is uploaded as a workflow artefact so a downstream consumer can pin to a specific build without re-running the generator.

@estebanzimanyi estebanzimanyi force-pushed the feat/openapi-validator-gate branch 5 times, most recently from 65b79bb to b2fd812 Compare May 20, 2026 19:03
@estebanzimanyi estebanzimanyi changed the title ci(openapi): add openapi-validate workflow (PR #5 natural follow-up) ci(openapi): add an openapi-validate workflow May 22, 2026
@estebanzimanyi estebanzimanyi force-pushed the feat/openapi-generator branch from fc1c600 to 185b201 Compare July 6, 2026 17:43
@estebanzimanyi estebanzimanyi force-pushed the feat/openapi-validator-gate branch from b2fd812 to 85aeb83 Compare July 6, 2026 17:43
@estebanzimanyi estebanzimanyi force-pushed the feat/openapi-generator branch from 185b201 to 675e4fa Compare July 7, 2026 10:29
@estebanzimanyi estebanzimanyi force-pushed the feat/openapi-validator-gate branch from 85aeb83 to 6a68a21 Compare July 7, 2026 12:39
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.
@estebanzimanyi estebanzimanyi force-pushed the feat/openapi-validator-gate branch from 6a68a21 to ae11803 Compare July 7, 2026 12:40
@estebanzimanyi estebanzimanyi changed the base branch from feat/openapi-generator to master July 7, 2026 12:40
@estebanzimanyi estebanzimanyi reopened this Jul 7, 2026
@estebanzimanyi estebanzimanyi merged commit b231d62 into master Jul 7, 2026
2 checks passed
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