Skip to content

CI: add build workflow, dataset submodule, and download scripts#22

Merged
adsharma merged 1 commit into
mainfrom
ci-build-extensions
Jul 4, 2026
Merged

CI: add build workflow, dataset submodule, and download scripts#22
adsharma merged 1 commit into
mainfrom
ci-build-extensions

Conversation

@adsharma

@adsharma adsharma commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Fixes: #13

  • .github/workflows/ci.yml: matrix-based CI (Linux x86_64 initially) modeled after ladybug/.github/workflows/build-extensions.yml for the build structure and ladybug-rust/.github/workflows/ci.yml for the prebuilt-download pattern. Runs the same extension tests as the 'minimal linux extension test' job in ci-workflow.yml.

  • dataset/ submodule: test databases (tinysnb, duckdb, etc.) needed by extension integration tests.

  • scripts/download-liblbug.sh: upstream downloader for prebuilt liblbug from GitHub releases or workflow artifacts.

  • scripts/download_lbug.sh: wrapper that invokes the upstream script and writes LBUG_LIBRARY_DIR / LBUG_INCLUDE_DIR env vars.

Platform matrix is pre-wired for ubuntu-24.04-arm, macos-latest, macos-15-intel, and windows-2022 — each entry is commented out and ready to activate with the appropriate duckdb/artifact arch values.

- .github/workflows/ci.yml: matrix-based CI (Linux x86_64 initially)
  modeled after ladybug/.github/workflows/build-extensions.yml for
  the build structure and ladybug-rust/.github/workflows/ci.yml for
  the prebuilt-download pattern.  Runs the same extension tests as
  the 'minimal linux extension test' job in ci-workflow.yml.

- Platform matrix: ubuntu-latest is active, with ubuntu-24.04-arm,
  macos-latest, macos-15-intel, and windows-2022 entries pre-wired
  and commented out.  Each entry is just os / os_name / arch /
  (container for Linux).  DuckDB archive name and ladybug artifact
  arch are computed from runner.os / runner.arch in a 'Compute
  platform variables' step instead of cluttering the matrix.

- Prebuilt artifacts: a separate 'resolve-run' job (host runner, no
  container, has gh CLI) queries the GitHub API for the latest
  successful LadybugDB/ladybug build-and-deploy run and downloads
  liblbug + CLI artifacts via 'gh run download', then uploads them
  as a workflow artifact.  The container job downloads that artifact
  via actions/download-artifact and extracts it into the ladybug
  tree, avoiding the need to install gh in the container.

- Sub-repo checkouts: actions/checkout@v4 places the extension
  repo, dataset, and benchmark directly into ladybug/extension,
  ladybug/dataset, and ladybug/benchmark respectively — the same
  layout 'git submodule update --init extension dataset benchmark'
  would produce, with no symlinks or path gymnastics.

- ADBC dependencies: setup-pixi + 'dbc install --level user duckdb'
  match the minimal-linux-extension-test job in ci-workflow.yml so
  the ADBC extension can actually link against libadbc-driver-manager
  and libarrow.

- Build steps: make extension-release (BUILD_LBUG=FALSE) for the
  extension .so files, then make relwithdebinfo + make
  extension-test-build (BUILD_TESTS=TRUE) for the test runner and
  ctest targets.  Test fixtures (ADBC duckdb + tinysnb) are created
  before the build, matching the existing CI ordering.

- scripts/download-liblbug.sh: upstream downloader for prebuilt
  liblbug from GitHub releases or workflow artifacts.

- scripts/download_lbug.sh: wrapper that invokes the upstream script
  and writes LBUG_LIBRARY_DIR / LBUG_INCLUDE_DIR env vars.
@adsharma adsharma force-pushed the ci-build-extensions branch from db24b92 to 0756bed Compare July 4, 2026 15:13
@adsharma adsharma merged commit 03baeec into main Jul 4, 2026
2 checks passed
@adsharma adsharma deleted the ci-build-extensions branch July 4, 2026 15:48
@adsharma adsharma mentioned this pull request Jul 4, 2026
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.

Repo needs CI

1 participant