chore: pin Arrow to 58.3 to match DataFusion v54 (#78) #171
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
| name: build | |
| on: | |
| push: | |
| branches: ['trunk'] | |
| pull_request: | |
| branches: ['trunk'] | |
| workflow_dispatch: | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| build_toolchains: | |
| name: Clippy on ${{ matrix.toolchain }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| toolchain: | |
| - 1.93.1 | |
| - beta | |
| - nightly | |
| steps: | |
| # actions/checkout v4.2.2 | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
| - name: Install Rust toolchain | |
| # dtolnay/rust-toolchain (pinned 2026-06-30). Replaces the archived | |
| # actions-rs/toolchain (Node 20, deprecated). The concrete version is | |
| # governed by rust-toolchain.toml (channel = "1.93.1"). | |
| uses: dtolnay/rust-toolchain@fa04a1451ff1842e2626ccb99004d0195b455a88 | |
| with: | |
| toolchain: ${{ matrix.toolchain }} | |
| components: clippy | |
| - name: Install required cargo | |
| run: cargo install clippy-sarif sarif-fmt | |
| - name: Run rust-clippy | |
| run: cargo clippy | |
| --all-features | |
| --message-format=json | clippy-sarif | tee rust-clippy-results.sarif | sarif-fmt | |
| continue-on-error: true | |
| - name: Upload analysis results to GitHub | |
| # github/codeql-action v3.28.1 | |
| uses: github/codeql-action/upload-sarif@48ab28a6f5dbc2a99bf1e0131198dd8f1df78169 | |
| with: | |
| sarif_file: rust-clippy-results.sarif | |
| wait-for-processing: true | |
| build_and_test: | |
| name: Build and test ${{matrix.os}} on ${{ matrix.toolchain }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| [ | |
| ubuntu-latest, | |
| ubuntu-24.04, | |
| macos-latest, | |
| macos-14, | |
| windows-latest, | |
| windows-2022, | |
| ] | |
| toolchain: | |
| - 1.93.1 | |
| - beta | |
| exclude: | |
| # macOS install step is flaky and macOS + beta is the least-valuable | |
| # matrix cell; skip it rather than chase the flake. | |
| - os: macos-latest | |
| toolchain: beta | |
| - os: macos-14 | |
| toolchain: beta | |
| steps: | |
| # actions/checkout v4.2.2 | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
| - name: Install Rust toolchain | |
| # dtolnay/rust-toolchain (pinned 2026-06-30). Replaces the archived | |
| # actions-rs/toolchain (Node 20, deprecated). The concrete version is | |
| # governed by rust-toolchain.toml (channel = "1.93.1"). | |
| uses: dtolnay/rust-toolchain@fa04a1451ff1842e2626ccb99004d0195b455a88 | |
| with: | |
| toolchain: ${{ matrix.toolchain }} | |
| components: clippy | |
| - name: Cargo clippy | |
| run: cargo clippy --all-features | |
| - name: Install Spice (https://install.spiceai.org) (Linux) | |
| if: startsWith(matrix.os, 'ubuntu') | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| curl https://install.spiceai.org | /bin/bash | |
| echo "$HOME/.spice/bin" >> $GITHUB_PATH | |
| $HOME/.spice/bin/spice install | |
| - name: Install Spice (https://install.spiceai.org) (MacOS) | |
| if: startsWith(matrix.os, 'macos') | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| # The Homebrew formula's post-install step ("Upgrading Spice | |
| # Runtime") flakes intermittently on macOS runners and makes | |
| # `brew install` exit non-zero even though the `spice` CLI itself | |
| # installs fine. Tolerate that, then fetch the runtime explicitly | |
| # with retries so a transient hiccup doesn't fail the whole job. | |
| brew install spiceai/spiceai/spice || true | |
| spice install || { sleep 10 && spice install; } || { sleep 10 && spice install; } | |
| - name: install Spice (Windows) | |
| if: startsWith(matrix.os, 'windows') | |
| run: | | |
| curl -L "https://install.spiceai.org/Install.ps1" -o Install.ps1 && PowerShell -ExecutionPolicy Bypass -File ./Install.ps1 | |
| - name: add Spice bin to PATH (Windows) | |
| if: startsWith(matrix.os, 'windows') | |
| run: | | |
| Add-Content $env:GITHUB_PATH (Join-Path $HOME ".spice\bin") | |
| shell: pwsh | |
| - name: Init and start spice app | |
| if: "!startsWith(matrix.os, 'windows')" | |
| run: | | |
| spice init spice_qs | |
| cd spice_qs | |
| spice add spiceai/quickstart | |
| spice run &> spice.log & | |
| # time to initialize added dataset | |
| sleep 10 | |
| - name: Init and start spice app (Windows) | |
| if: startsWith(matrix.os, 'windows') | |
| run: | | |
| spice init spice_qs | |
| cd spice_qs | |
| spice add spiceai/quickstart | |
| Start-Process -FilePath spice run | |
| # time to initialize added dataset | |
| Start-Sleep -Seconds 10 | |
| shell: pwsh | |
| - name: Run tests | |
| run: cargo test | |
| env: | |
| SCP_SPICEAI_TPCH_API_KEY: ${{ secrets.SCP_SPICEAI_TPCH_API_KEY }} | |
| - name: Stop spice and check logs | |
| working-directory: spice_qs | |
| # Guard on spice_qs existing: a failed `spice install`/`spice init` | |
| # never creates the working-directory, which would otherwise make this | |
| # always() step error with "No such file or directory" and mask the | |
| # real failure. | |
| if: "always() && !startsWith(matrix.os, 'windows') && hashFiles('spice_qs/**') != ''" | |
| run: | | |
| killall spice || true | |
| cat spice.log |