CI: add build workflow, dataset submodule, and download scripts#22
Merged
Conversation
- .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.
db24b92 to
0756bed
Compare
Closed
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.
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.