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
6 changes: 3 additions & 3 deletions .github/actions/setup-prebuild/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ inputs:
description: "optional targets override (e.g. wasm32-unknown-unknown)"
required: false
enable-sccache:
description: "Should sccache be enabled, true by default."
description: "Should sccache be enabled."
required: false
default: "true"
default: "false"

runs:
using: "composite"
Expand All @@ -46,4 +46,4 @@ runs:
toolchain: ${{ inputs.toolchain }}
components: ${{ inputs.components }}
targets: ${{ inputs.targets }}
enable-sccache: ${{ inputs.enable-sccache }}
enable-sccache: "false"
4 changes: 2 additions & 2 deletions .github/actions/setup-rust/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ inputs:
description: "optional targets override (e.g. wasm32-unknown-unknown)"
required: false
enable-sccache:
description: "Should sccache be enabled, true by default."
description: "Should sccache be enabled."
required: false
default: "true"
default: "false"

runs:
using: "composite"
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/bench-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ jobs:
- uses: ./.github/actions/setup-rust
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
enable-sccache: ${{ github.event.pull_request.head.repo.fork == false && 'true' || 'false' }}

- name: Install DuckDB
run: |
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ jobs:
- uses: ./.github/actions/setup-rust
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
enable-sccache: ${{ github.repository == 'vortex-data/vortex' && 'true' || 'false' }}

- name: Install DuckDB
run: |
Expand Down
110 changes: 73 additions & 37 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ jobs:
duckdb-ready:
name: "DuckDB libraries available in R2"
needs: duckdb-mirror
if: ${{ !cancelled() }}
if: "!cancelled()"
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Verify DuckDB mirror
if: ${{ needs.duckdb-mirror.result == 'failure' }}
if: needs.duckdb-mirror.result == 'failure'
run: |
echo "DuckDB mirror failed; downstream builds would 404"
exit 1
Expand Down Expand Up @@ -68,7 +68,7 @@ jobs:
name: "Python (lint)"
runs-on: >-
${{ github.repository == 'vortex-data/vortex'
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=python-lint', github.run_id)
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/extras=s3-cache/tag=python-lint', github.run_id)
|| 'ubuntu-latest' }}
timeout-minutes: 10
steps:
Expand All @@ -78,6 +78,8 @@ jobs:
sccache: s3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- uses: ./.github/actions/setup-prebuild
with:
enable-sccache: "true"
# Use uvx for ruff to avoid building the Rust extension (saves ~4.5 min)
- name: Python Lint - Format
run: uvx ruff format --check .
Expand All @@ -95,7 +97,7 @@ jobs:
name: "Python (test)"
runs-on: >-
${{ github.repository == 'vortex-data/vortex'
&& format('runs-on={0}/runner=amd64-large/image=ubuntu24-full-x64-pre-v2/tag=python-test', github.run_id)
&& format('runs-on={0}/runner=amd64-large/image=ubuntu24-full-x64-pre-v2/extras=s3-cache/tag=python-test', github.run_id)
|| 'ubuntu-latest' }}
timeout-minutes: 30
env:
Expand All @@ -108,6 +110,8 @@ jobs:
sccache: s3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- uses: ./.github/actions/setup-prebuild
with:
enable-sccache: "true"

- name: Pytest - Vortex
run: |
Expand Down Expand Up @@ -135,8 +139,7 @@ jobs:
python-cuda-test:
name: "Python CUDA (test)"
if: github.repository == 'vortex-data/vortex'
runs-on: >-
${{ format('runs-on={0}/runner=gpu/tag=python-cuda-test', github.run_id) }}
runs-on: runs-on=${{ github.run_id }}/runner=gpu/extras=s3-cache/tag=python-cuda-test
timeout-minutes: 30
env:
RUST_LOG: "info,maturin=off,uv=debug"
Expand All @@ -150,6 +153,7 @@ jobs:
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
components: cargo
enable-sccache: "true"
- name: Pin rustup proxy to repository toolchain
run: |
TOOLCHAIN="$(grep '^channel' rust-toolchain.toml | cut -d '"' -f 2)"
Expand All @@ -171,7 +175,7 @@ jobs:
timeout-minutes: 30
runs-on: >-
${{ github.repository == 'vortex-data/vortex'
&& format('runs-on={0}/runner=amd64-small/image=ubuntu24-full-x64-pre-v2/tag=rust-docs', github.run_id)
&& format('runs-on={0}/runner=amd64-small/image=ubuntu24-full-x64-pre-v2/extras=s3-cache/tag=rust-docs', github.run_id)
|| 'ubuntu-latest' }}
steps:
- uses: runs-on/action@v2
Expand All @@ -180,6 +184,8 @@ jobs:
sccache: s3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- uses: ./.github/actions/setup-prebuild
with:
enable-sccache: "true"
- name: Docs
env:
# required to make sure docs build for features
Expand All @@ -196,7 +202,7 @@ jobs:
timeout-minutes: 30
runs-on: >-
${{ github.repository == 'vortex-data/vortex'
&& format('runs-on={0}/runner={1}/image=ubuntu24-full-x64-pre-v2/tag={2}', github.run_id, matrix.config.runner, matrix.config.name)
&& format('runs-on={0}/runner={1}/image=ubuntu24-full-x64-pre-v2/extras=s3-cache/tag={2}', github.run_id, matrix.config.runner, matrix.config.name)
|| 'ubuntu-latest' }}
env:
# disable lints for build, they will be caught in Rust lint job.
Expand Down Expand Up @@ -228,8 +234,10 @@ jobs:
sccache: s3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- uses: ./.github/actions/setup-prebuild
with:
enable-sccache: "true"
- name: Install wasm32 target
if: ${{ matrix.config.target == 'wasm32-unknown-unknown' }}
if: matrix.config.target == 'wasm32-unknown-unknown'
run: rustup target add wasm32-unknown-unknown
- uses: ./.github/actions/check-rebuild
with:
Expand All @@ -244,7 +252,7 @@ jobs:
timeout-minutes: 30
runs-on: >-
${{ github.repository == 'vortex-data/vortex'
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=rust-min-deps', github.run_id)
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/extras=s3-cache/tag=rust-min-deps', github.run_id)
|| 'ubuntu-latest' }}
steps:
- uses: runs-on/action@v2
Expand All @@ -253,6 +261,8 @@ jobs:
sccache: s3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- uses: ./.github/actions/setup-prebuild
with:
enable-sccache: "true"
- run: cargo minimal-versions check --direct --workspace --ignore-private

rust-lint:
Expand All @@ -261,7 +271,7 @@ jobs:
timeout-minutes: 30
runs-on: >-
${{ github.repository == 'vortex-data/vortex'
&& format('runs-on={0}/runner=amd64-large/image=ubuntu24-full-x64-pre-v2/tag=rust-lint', github.run_id)
&& format('runs-on={0}/runner=amd64-large/image=ubuntu24-full-x64-pre-v2/extras=s3-cache/tag=rust-lint', github.run_id)
|| 'ubuntu-latest' }}
steps:
- uses: runs-on/action@v2
Expand All @@ -270,6 +280,8 @@ jobs:
sccache: s3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- uses: ./.github/actions/setup-prebuild
with:
enable-sccache: "true"
- name: Install nightly for fmt
run: rustup toolchain install $NIGHTLY_TOOLCHAIN --component rustfmt
- name: Rust Lint - Format
Expand Down Expand Up @@ -339,7 +351,7 @@ jobs:
timeout-minutes: 30
runs-on: >-
${{ github.repository == 'vortex-data/vortex'
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=rust-lint-no-default', github.run_id)
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/extras=s3-cache/tag=rust-lint-no-default', github.run_id)
|| 'ubuntu-latest' }}
steps:
- uses: runs-on/action@v2
Expand All @@ -348,41 +360,34 @@ jobs:
sccache: s3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- uses: ./.github/actions/setup-prebuild
with:
enable-sccache: "true"
- name: Rust Lint - Clippy No Default Features
shell: bash
run: |
cargo hack --no-dev-deps --ignore-private clippy --profile ci --no-default-features -- -D warnings

rust-test-other:
name: "Rust tests (${{ matrix.os }})"
rust-test-windows:
name: "Rust tests (windows-x64)"
needs: duckdb-ready
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
include:
- os: windows-x64
runner: runs-on=${{ github.run_id }}/pool=windows-x64-pre
fallback_runner: windows-latest
- os: linux-arm64
runner: runs-on=${{ github.run_id }}/runner=arm64-medium/image=ubuntu24-full-arm64-pre-v2/tag=rust-test-linux-arm64
runs-on: >-
${{ github.repository == 'vortex-data/vortex'
&& matrix.runner
|| matrix.fallback_runner }}
&& format('runs-on={0}/pool=windows-x64-pre/extras=s3-cache', github.run_id)
|| 'windows-latest' }}
steps:
- uses: runs-on/action@v2
if: github.repository == 'vortex-data/vortex'
with:
sccache: s3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- name: Setup (Windows)
if: matrix.os == 'windows-x64'
run: |
echo "C:\rust\cargo\bin" >> $env:GITHUB_PATH
- uses: ./.github/actions/setup-prebuild
with:
enable-sccache: "true"
- name: Rust Tests (Windows)
if: matrix.os == 'windows-x64'
run: |
cargo nextest run --cargo-profile ci --locked --workspace --all-features --no-fail-fast `
--exclude vortex-bench `
Expand All @@ -393,12 +398,33 @@ jobs:
--exclude lance-bench --exclude datafusion-bench --exclude random-access-bench `
--exclude compress-bench --exclude xtask --exclude vortex-datafusion `
--exclude gpu-scan-cli --exclude vortex-sqllogictest
- name: Rust Tests (Other)
if: matrix.os != 'windows-x64'

- name: Alert incident.io
if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/develop'
uses: ./.github/actions/alert-incident-io
with:
api-key: ${{ secrets.INCIDENT_IO_ALERT_TOKEN }}
alert-title: "Rust tests (windows-x64) failed on develop"
deduplication-key: ci-rust-test-windows-x64-failure

rust-test-linux-arm64:
name: "Rust tests (linux-arm64)"
needs: duckdb-ready
if: github.repository == 'vortex-data/vortex'
timeout-minutes: 30
runs-on: runs-on=${{ github.run_id }}/runner=arm64-medium/image=ubuntu24-full-arm64-pre-v2/extras=s3-cache/tag=rust-test-linux-arm64
steps:
- uses: runs-on/action@v2
with:
sccache: s3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- uses: ./.github/actions/setup-prebuild
with:
enable-sccache: "true"
- name: Rust Tests
run: |
cargo nextest run --cargo-profile ci --locked --workspace --all-features --no-fail-fast --exclude vortex-bench --exclude xtask --exclude vortex-sqllogictest
- uses: ./.github/actions/check-rebuild
if: matrix.os != 'windows-x64'
with:
command: "cargo test --profile ci --locked --workspace --all-features --no-run --exclude vortex-bench --exclude xtask --exclude vortex-sqllogictest"

Expand All @@ -407,14 +433,14 @@ jobs:
uses: ./.github/actions/alert-incident-io
with:
api-key: ${{ secrets.INCIDENT_IO_ALERT_TOKEN }}
alert-title: "Rust tests (${{ matrix.os }}) failed on develop"
deduplication-key: ci-rust-test-${{ matrix.os }}-failure
alert-title: "Rust tests (linux-arm64) failed on develop"
deduplication-key: ci-rust-test-linux-arm64-failure

build-java:
name: "Java"
runs-on: >-
${{ github.repository == 'vortex-data/vortex'
&& format('runs-on={0}/pool=amd64-medium-pre-v2/tag=java', github.run_id)
&& format('runs-on={0}/pool=amd64-medium-pre-v2/extras=s3-cache/tag=java', github.run_id)
|| 'ubuntu-latest' }}
timeout-minutes: 30
steps:
Expand All @@ -424,6 +450,8 @@ jobs:
sccache: s3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- uses: ./.github/actions/setup-prebuild
with:
enable-sccache: "true"
- run: ./gradlew javadoc
working-directory: ./java
- run: ./gradlew check
Expand Down Expand Up @@ -451,7 +479,7 @@ jobs:
timeout-minutes: 30
runs-on: >-
${{ github.repository == 'vortex-data/vortex'
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=cxx-build', github.run_id)
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/extras=s3-cache/tag=cxx-build', github.run_id)
|| 'ubuntu-latest' }}
steps:
- uses: runs-on/action@v2
Expand All @@ -460,6 +488,8 @@ jobs:
sccache: s3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- uses: ./.github/actions/setup-prebuild
with:
enable-sccache: "true"
- name: Build and run C++ unit tests
run: |
mkdir -p vortex-cxx/build
Expand All @@ -480,7 +510,7 @@ jobs:
needs: duckdb-ready
runs-on: >-
${{ github.repository == 'vortex-data/vortex'
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=sql-logic-test', github.run_id)
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/extras=s3-cache/tag=sql-logic-test', github.run_id)
|| 'ubuntu-latest' }}
timeout-minutes: 30
steps:
Expand All @@ -490,6 +520,8 @@ jobs:
sccache: s3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- uses: ./.github/actions/setup-prebuild
with:
enable-sccache: "true"
- name: Run sqllogictest tests
run: |
./vortex-sqllogictest/slt/tpch/generate_data.sh
Expand Down Expand Up @@ -523,7 +555,7 @@ jobs:
name: "Check generated source files are up to date"
runs-on: >-
${{ github.repository == 'vortex-data/vortex'
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=generated-files', github.run_id)
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/extras=s3-cache/tag=generated-files', github.run_id)
|| 'ubuntu-latest' }}
timeout-minutes: 30
steps:
Expand All @@ -533,6 +565,8 @@ jobs:
sccache: s3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- uses: ./.github/actions/setup-prebuild
with:
enable-sccache: "true"
- name: Install nightly for cbindgen macro expansion
run: rustup toolchain install $NIGHTLY_TOOLCHAIN
- name: "regenerate all .fbs/.proto Rust code"
Expand Down Expand Up @@ -563,7 +597,7 @@ jobs:
timeout-minutes: 10
runs-on: >-
${{ github.repository == 'vortex-data/vortex'
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/tag=cxx-build', github.run_id)
&& format('runs-on={0}/runner=amd64-medium/image=ubuntu24-full-x64-pre-v2/extras=s3-cache/tag=cxx-build', github.run_id)
|| 'ubuntu-latest' }}
steps:
- uses: runs-on/action@v2
Expand All @@ -572,6 +606,8 @@ jobs:
sccache: s3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- uses: ./.github/actions/setup-prebuild
with:
enable-sccache: "true"
- name: "regenerate FFI header file"
run: |
cargo +$NIGHTLY_TOOLCHAIN build --profile ci -p vortex-ffi
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/claude-write.yml
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,6 @@ jobs:

- name: Setup Rust toolchain
uses: ./.github/actions/setup-rust
with:
enable-sccache: "false"

- name: Install uv
uses: spiraldb/actions/.github/actions/setup-uv@a746510eafaa926484c354541cfc49b2ec06cc63 # 0.18.6
Expand Down
Loading
Loading