ci(vendor): add vendor-drift workflow (step 3 of ingestion plan)#5
Open
estebanzimanyi wants to merge 2 commits into
Open
ci(vendor): add vendor-drift workflow (step 3 of ingestion plan)#5estebanzimanyi wants to merge 2 commits into
estebanzimanyi wants to merge 2 commits into
Conversation
Vendor MobilityAPI's read-only copy of MEOS-API's published catalog +
projection artefacts under `vendor/meos-api/`, plus a Makefile target
`make vendor-meos-api` that regenerates them from upstream.
Files added:
vendor/meos-api/
PROVENANCE.json -- per-artefact source URLs + regenerate cmd
README.md -- refresh procedure
meos-idl.json -- 3546 fns / 70 structs / 16 enums
(generated by MEOS-API run.py over
MobilityDB master meos/include headers)
meos-coverage.json -- structural worklist (from open PR MobilityDB#4)
meos-object-model-parity.json -- 29-pair portable-parity (from open PR #10)
The Makefile target clones MEOS-API + MobilityDB shallowly, installs
libclang, runs MEOS-API's `run.py` against MobilityDB's MEOS headers,
and copies the produced JSON artefacts into `vendor/meos-api/`.
Two of the four artefacts (`meos-coverage.json`,
`meos-object-model-parity.json`) currently come from open MEOS-API PR
branches because their generators are not yet on master; PROVENANCE.json
makes that explicit. The Makefile gracefully skips them if absent.
Step 2 of `docs/MEOS_API_INGESTION_PLAN.md`. The drift gate workflow
that fails on stale artefacts is step 3 (separate stacked PR).
d2d3d58 to
6d58be2
Compare
efcad95 to
254c8a9
Compare
Adds `.github/workflows/vendor-drift.yml` which regenerates the
vendored MEOS-API artefacts (`make vendor-meos-api`) on every PR
touching `vendor/meos-api/`, the Makefile, or the workflow itself,
plus on push to master and on a daily 06:00 UTC cron. On drift it
fails with an actionable message:
::error::vendor/meos-api/ is stale. Run `make vendor-meos-api`
locally and open a refresh PR.
This is step 3 of `docs/MEOS_API_INGESTION_PLAN.md` ("CI gate that
regenerates the vendored artefacts and fails the PR if they drift").
Stacks on PR MobilityDB#4 (vendoring + Makefile).
254c8a9 to
ca4c130
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Step 3 of
docs/MEOS_API_INGESTION_PLAN.md: a CI gate that regeneratesvendor/meos-api/from MEOS-API + MobilityDB master and fails the PR if any committed artefact is stale.Trigger
vendor/meos-api/**,Makefile, or the workflow itselfmaster(post-merge sanity)workflow_dispatchBehaviour
The workflow installs
clang libclang-dev libjson-c-dev libgsl-dev libproj-dev libgeos-dev postgresql-server-dev-allso libclang's sysroot resolves the same way as a local checkout, runsmake vendor-meos-api, andgit diff --exit-code -- vendor/meos-api/. On drift it emits:Stacks on #4 (the
make vendor-meos-apiMakefile target + the vendored artefacts).