Build the benchmark image in CI - #59
Merged
estebanzimanyi merged 1 commit intoAug 31, 2026
Merged
Conversation
Nothing in this repository builds the benchmark image, which is how it came to build a release branch of MobilityDB while the jar it runs is generated from the catalog of master: no run ever executed those lines. Building it is the test, so a workflow does. The job reaches the application jar through the same shared chain the build job uses, since the image copies that jar in. It runs on a change to the image, to what the image copies, or to this workflow; on a push to main; and weekly. The weekly run is the one that matters — the image tracks MobilityDB master, so it can start failing with nothing here having changed. The first run of that job is what the image needs. `-DALL=ON` turns on the H3 family, which wants `libh3-dev`, and Debian bookworm carries no such package, so the configure step ends `H3=ON was requested but libh3 was not found`. The image now builds on the distribution MobilityDB's own `meos.yml` builds MEOS on, with the dependency set that workflow installs: Ubuntu 24.04, which carries libh3-dev 4.1.0, plus geos, proj, json-c, gdal, xml2 and zlib. A `-DMEOS=ON` build needs neither the PostgreSQL server headers nor GSL nor PostGIS, so none of the three is installed any more. Measured in a container: that set configures `-DMEOS=ON -DALL=ON` cleanly and reports `Including temporal H3 index`. A successful build still says nothing about which library the image holds, and jnr-ffi resolves lazily, so a library missing a symbol faults at the call rather than at load: no build and no link reports it. The job therefore asks the image. A libmeos configured without `-DALL=ON` carries no `ts2cell_in` and no `tposechain_in`, while the surface generated from the catalog of master names both; `temporal_merge` is the positive control, so a check reading the wrong file fails differently from one reading a narrow build. It also asserts the application jar carries `functions/GeneratedFunctions.class`, which is why the image needs no separate copy of JMEOS on its classpath.
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.
Nothing in this repository builds the benchmark image, which is how it came to
build a release branch of MobilityDB while the jar it runs is generated from the
catalog of master: no run ever executed those lines. Building it is the test, so a
workflow does. The job reaches the application jar through the same shared chain
the build job uses, since the image copies that jar in.
It runs on a change to the image, to what the image copies, or to this workflow;
on a push to main; and weekly. The weekly run is the one that matters — the image
tracks MobilityDB master, so it can start failing with nothing here having changed.
The first run of that job is what the image needs.
-DALL=ONturns on the H3family, which wants
libh3-dev, and Debian bookworm carries no such package, sothe configure step ends
H3=ON was requested but libh3 was not found. The imagenow builds on the distribution MobilityDB's own
meos.ymlbuilds MEOS on, withthe dependency set that workflow installs: Ubuntu 24.04, which carries libh3-dev
4.1.0, plus geos, proj, json-c, gdal, xml2 and zlib. A
-DMEOS=ONbuild needsneither the PostgreSQL server headers nor GSL nor PostGIS, so none of the three is
installed any more. Measured in a container: that set configures
-DMEOS=ON -DALL=ONcleanly and reportsIncluding temporal H3 index.A successful build still says nothing about which library the image holds, and
jnr-ffi resolves lazily, so a library missing a symbol faults at the call rather
than at load: no build and no link reports it. The job therefore asks the image. A
libmeos configured without
-DALL=ONcarries nots2cell_inand notposechain_in, while the surface generated from the catalog of master names both;temporal_mergeis the positive control, so a check reading the wrong file failsdifferently from one reading a narrow build. It also asserts the application jar
carries
functions/GeneratedFunctions.class, which is why the image needs noseparate copy of JMEOS on its classpath.