Repository navigation
perf(reader): fold an i32 global dict column off its codes, not a per-row copy #1950
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: CI | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ ubuntu-latest, macos-latest, windows-latest ] | |
| java-version: [ '25', '27' ] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Set up Azul Zulu JDK ${{ matrix.java-version }} | |
| uses: actions/setup-java@v6.1.0 | |
| with: | |
| distribution: zulu | |
| java-version: ${{ matrix.java-version }} | |
| - name: Cache Maven repository | |
| uses: actions/cache@v6 | |
| with: | |
| path: ~/.m2/repository | |
| key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-maven- | |
| # The integration tests download Rust-written fixtures from S3 (a snapshot pinned to the | |
| # vortex-jni version) and LocalHttpCache keeps them here, so a cache hit takes the S3 round | |
| # trips, and their occasional connection resets, out of the run. Windows skips integration. | |
| - name: Cache downloaded test fixtures | |
| if: runner.os != 'Windows' | |
| uses: actions/cache@v6 | |
| with: | |
| path: /tmp/vortex-compat-fixtures | |
| key: fixtures-${{ runner.os }}-${{ hashFiles('integration/src/test/java/io/github/dfa1/vortex/integration/RustFixtures.java') }} | |
| # vortex-jni 0.74.0 ships native libs for darwin-aarch64 + linux-aarch64 | |
| # + linux-amd64 only. No Windows binary, so the modules that pull vortex-jni | |
| # (integration, performance) are skipped on Windows. Being the only Vortex | |
| # impl that runs on Windows JVMs is one of vortex-java's selling points — | |
| # see README "Who is this for". | |
| - name: Build and test (Linux + macOS) | |
| if: runner.os != 'Windows' | |
| run: ./mvnw verify | |
| # The test JVMs add jdk.incubator.vector; users get the auto-vectorized kernels unless they opt in. | |
| # This leg runs everything again without the module, the configuration most users run. | |
| - name: Build and test without the Vector API module | |
| if: matrix.os == 'ubuntu-latest' && matrix.java-version == '25' | |
| run: ./mvnw verify -Dtest.vector.args= | |
| - name: Build and test (Windows) | |
| if: runner.os == 'Windows' | |
| shell: bash | |
| run: ./mvnw verify -pl '!integration,!performance' |