|
1 | 1 | name: CI |
2 | 2 |
|
| 3 | +# Concurrency control: |
| 4 | +# - PRs: new commits on a feature branch will cancel in-progress (outdated) runs. |
| 5 | +# - Push to develop: runs queue sequentially, never cancelled. This allows us to have benchmarks |
| 6 | +# run on every commit for our benchmarks website. |
| 7 | +# - `workflow_dispatch`: groups by branch and queues if run on develop. |
3 | 8 | concurrency: |
4 | 9 | group: ${{ github.workflow }}-${{ github.ref }} |
5 | 10 | cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }} |
6 | | - |
7 | 11 | on: |
8 | 12 | push: |
9 | | - branches: ["develop"] |
10 | | - pull_request: {} |
11 | | - workflow_dispatch: {} |
| 13 | + branches: [develop] |
| 14 | + pull_request: { } |
| 15 | + workflow_dispatch: { } |
12 | 16 |
|
13 | 17 | permissions: |
14 | 18 | actions: read |
|
38 | 42 | # Lint the workflows and yamllint's configuration file. |
39 | 43 | yamllint \ |
40 | 44 | --strict \ |
41 | | - -c yamllint-config.yaml \ |
42 | | - yamllint-config.yaml \ |
| 45 | + -c .yamllint.yaml \ |
43 | 46 | .github/ |
44 | 47 |
|
45 | 48 | python-lint: |
@@ -311,6 +314,43 @@ jobs: |
311 | 314 | # https://spiraldb.slack.com/archives/C07BV3GKAJ2/p1732736281946729 |
312 | 315 | cargo hack clippy --no-default-features -- -D warnings |
313 | 316 |
|
| 317 | + rust-semver: |
| 318 | + name: "Rust (semver checks)" |
| 319 | + timeout-minutes: 120 |
| 320 | + if: github.ref != 'refs/heads/develop' |
| 321 | + runs-on: |
| 322 | + - runs-on=${{ github.run_id }} |
| 323 | + - family=m7i+m7i-flex+m7a |
| 324 | + - cpu=16 |
| 325 | + - image=ubuntu24-full-x64 |
| 326 | + - extras=s3-cache |
| 327 | + - tag=rust-semver |
| 328 | + steps: |
| 329 | + - uses: runs-on/action@v2 |
| 330 | + with: |
| 331 | + sccache: s3 |
| 332 | + - uses: actions/checkout@v6 |
| 333 | + with: |
| 334 | + fetch-depth: 0 |
| 335 | + fetch-tags: true |
| 336 | + - uses: ./.github/actions/setup-rust |
| 337 | + with: |
| 338 | + repo-token: ${{ secrets.GITHUB_TOKEN }} |
| 339 | + |
| 340 | + # We have to set the correct Cargo.toml versions so semver checks uses the previous release. |
| 341 | + - name: Latest Tag |
| 342 | + id: latest-tag |
| 343 | + run: | |
| 344 | + LATEST_TAG=$(git describe --tags --abbrev=0) |
| 345 | + echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT |
| 346 | + - name: Cargo Set Version |
| 347 | + run: | |
| 348 | + cargo install cargo-edit |
| 349 | + cargo set-version --workspace ${{ steps.latest-tag.outputs.tag }} |
| 350 | +
|
| 351 | + - name: Check semver |
| 352 | + uses: obi1kenobi/cargo-semver-checks-action@v2 |
| 353 | + |
314 | 354 | rust-coverage: |
315 | 355 | name: "Rust tests (coverage)" |
316 | 356 | timeout-minutes: 120 |
@@ -351,6 +391,8 @@ jobs: |
351 | 391 | tool: nextest |
352 | 392 | - name: Rust Tests |
353 | 393 | if: ${{ matrix.suite == 'tests' }} |
| 394 | + env: |
| 395 | + RUSTFLAGS: "-Cinstrument-coverage -A warnings --cfg vortex_nightly" |
354 | 396 | run: | |
355 | 397 | cargo +nightly nextest run --locked --workspace --all-features --no-fail-fast |
356 | 398 | - name: Run TPC-H |
@@ -397,7 +439,7 @@ jobs: |
397 | 439 | - tag=rust-test-sanitizer |
398 | 440 | env: |
399 | 441 | # Add debug symbols and enable ASAN/LSAN with better output |
400 | | - RUSTFLAGS: "-A warnings -Zsanitizer=address -Zsanitizer=leak --cfg disable_loom -C debuginfo=2 -C opt-level=0 -C strip=none" |
| 442 | + RUSTFLAGS: "-A warnings -Zsanitizer=address -Zsanitizer=leak --cfg disable_loom --cfg vortex_nightly -C debuginfo=2 -C opt-level=0 -C strip=none" |
401 | 443 | ASAN_OPTIONS: "symbolize=1:print_stats=1:check_initialization_order=1:detect_leaks=1:halt_on_error=0:verbosity=1:leak_check_at_exit=1" |
402 | 444 | LSAN_OPTIONS: "verbosity=1:report_objects=1" |
403 | 445 | ASAN_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer" |
@@ -637,7 +679,7 @@ jobs: |
637 | 679 | timeout-minutes: 120 |
638 | 680 | env: |
639 | 681 | MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-symbolic-alignment-check -Zmiri-disable-isolation -Zmiri-env-forward=RUST_BACKTRACE |
640 | | - RUSTFLAGS: "-A warnings" |
| 682 | + RUSTFLAGS: "-A warnings --cfg vortex_nightly" |
641 | 683 | RUST_BACKTRACE: full |
642 | 684 | steps: |
643 | 685 | - uses: actions/checkout@v6 |
|
0 commit comments