Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion .github/workflows/bindings-required.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,17 @@ jobs:
ruby-version: "3.3"
bundler-cache: false
- run: cargo test --locked --manifest-path bindings/uniffi/Cargo.toml --target-dir target
- run: cargo build --locked --manifest-path bindings/uniffi/Cargo.toml --target-dir target
- run: npm --prefix bindings/node ci
- run: npm --prefix bindings/node run build:native:release
- run: npm --prefix bindings/node run typecheck
- run: npm --prefix bindings/node test
- run: npm --prefix bindings/node run test:package
- run: npm --prefix bindings/node run example:cookbook
- run: go test -tags prolly_dev ./...
working-directory: bindings/go
- run: go run -tags prolly_dev ./examples/cookbook_scenarios
working-directory: bindings/go
- run: python -m pip install "maturin==1.14.1"
- run: maturin build --release --locked --out dist
working-directory: bindings/python
Expand All @@ -77,7 +81,18 @@ jobs:
/tmp/prolly-wheel-smoke/bin/pip install bindings/python/dist/*.whl
cd /tmp
/tmp/prolly-wheel-smoke/bin/python -c "import prolly; engine = prolly.ProllyEngine.memory(prolly.default_config()); tree = engine.create(); assert engine.get(tree, b'missing') is None"
- run: mvn -q -f bindings/pom.xml test
- run: /tmp/prolly-wheel-smoke/bin/python bindings/python/examples/cookbook_scenarios.py
- run: mvn -q -f bindings/pom.xml install
env:
LD_LIBRARY_PATH: ${{ github.workspace }}/target/debug
- run: >-
mvn -q -f bindings/kotlin/pom.xml compile
-Dexec.mainClass=build.crab.prolly.examples.CookbookScenariosKt exec:java
env:
LD_LIBRARY_PATH: ${{ github.workspace }}/target/debug
- run: >-
mvn -q -f bindings/java/pom.xml compile
-Dexec.mainClass=build.crab.prolly.examples.CookbookScenarios exec:java
env:
LD_LIBRARY_PATH: ${{ github.workspace }}/target/debug
- run: bundle install
Expand All @@ -86,6 +101,10 @@ jobs:
working-directory: bindings/ruby
env:
PROLLY_BINDINGS_LIBRARY: ${{ github.workspace }}/target/debug/libprolly_bindings.so
- run: bundle exec ruby -Ilib examples/cookbook_scenarios.rb
working-directory: bindings/ruby
env:
PROLLY_BINDINGS_LIBRARY: ${{ github.workspace }}/target/debug/libprolly_bindings.so

wasm:
runs-on: ubuntu-24.04
Expand All @@ -108,6 +127,7 @@ jobs:
- run: npm --prefix bindings/wasm run build
- run: npm --prefix bindings/wasm run typecheck
- run: npm --prefix bindings/wasm test
- run: npm --prefix bindings/wasm run example:cookbook
- run: npm pack --dry-run
working-directory: bindings/wasm

Expand All @@ -124,3 +144,6 @@ jobs:
- run: swift test --package-path bindings/swift
env:
DYLD_LIBRARY_PATH: ${{ github.workspace }}/target/debug
- run: swift run --package-path bindings/swift prolly-cookbook-scenarios
env:
DYLD_LIBRARY_PATH: ${{ github.workspace }}/target/debug
74 changes: 74 additions & 0 deletions .github/workflows/bindings-stores-required.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: Language binding stores required

on:
pull_request:
paths:
- "Cargo.toml"
- "Cargo.lock"
- "src/**"
- "stores/**"
- "bindings/**"
- "conformance/**"
- "docker-compose.store-services.yml"
- "scripts/test-all-language-stores.sh"
- "scripts/test-go-stores.sh"
- "scripts/test-node-jvm-stores.sh"
- "scripts/verify-store-compatibility.mjs"
- ".github/workflows/bindings-stores-required.yml"
push:
branches: [main]
paths:
- "Cargo.toml"
- "Cargo.lock"
- "src/**"
- "stores/**"
- "bindings/**"
- "conformance/**"
- "docker-compose.store-services.yml"
- "scripts/test-all-language-stores.sh"
- "scripts/test-go-stores.sh"
- "scripts/test-node-jvm-stores.sh"
- "scripts/verify-store-compatibility.mjs"
- ".github/workflows/bindings-stores-required.yml"
workflow_dispatch:

permissions:
contents: read

jobs:
all-language-stores:
runs-on: ubuntu-24.04
timeout-minutes: 180
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
shared-key: all-language-stores-linux
- uses: actions/setup-node@v4
with:
node-version: "24"
cache: npm
cache-dependency-path: |
bindings/node/package-lock.json
bindings/node/stores/*/package-lock.json
bindings/wasm/stores/*/package-lock.json
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- uses: actions/setup-go@v5
with:
go-version: "1.25.x"
cache-dependency-path: bindings/go/go.mod
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
cache: maven
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.3"
bundler-cache: false
- run: swift --version
- run: docker compose version
- run: ./scripts/test-all-language-stores.sh
7 changes: 6 additions & 1 deletion .github/workflows/secondary-index-required.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,12 @@ jobs:
- uses: Swatinem/rust-cache@v2
- run: cargo fmt --all -- --check
- run: cargo check --all-targets
- run: cargo clippy --all-targets -- -D warnings
# Rust 1.98 promoted chunks_exact_to_as_chunks to warn-by-default. Keep
# the existing MSRV-compatible parsing code until that migration is
# reviewed separately from binding releases.
- run: >-
cargo clippy --all-targets --
-D warnings -A clippy::chunks-exact-to-as-chunks
- run: cargo test --all-targets
- run: RUSTDOCFLAGS="-D warnings" cargo test --doc
- run: >-
Expand Down
2 changes: 1 addition & 1 deletion bindings/go/examples/cookbook_scenarios/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ var scenarios = []string{

func main() {
for _, scenario := range scenarios {
cmd := exec.Command("go", "run", scenario)
cmd := exec.Command("go", "run", "-tags", "prolly_dev", scenario)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
if err := cmd.Run(); err != nil {
Expand Down
Loading
Loading