Skip to content
Closed
Changes from 11 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
18 changes: 13 additions & 5 deletions .github/workflows/extended.yml
Original file line number Diff line number Diff line change
Expand Up @@ -167,11 +167,19 @@ jobs:
uses: ./.github/actions/setup-builder
with:
rust-version: stable
- name: Build sqllogictest binary
run: |
# Cargo emits test binaries with hashed filenames under target/.../deps.
# We use head to pick the first matching sqllogictests artifact from the JSON stream.
TEST_BIN=$(cargo build --profile release-nonlto --features backtrace,parquet_encryption --package datafusion-sqllogictest --test sqllogictests --message-format=json | sed -n 's/.*"executable":"\([^"]*\)".*/\1/p' | head -n 1)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am very confused (similar to @nuno-faria ) why this is taking so much less time

I would be hesitant to merge this until we understand why this would make the CI run faster. It doesn't make any sense to me

As an interim step, can you try at least splitting the build and run steps so we can see the timings

So like the build would be

  cargo build --features backtrace,parquet_encryption --profile release-nonlto --test sqllogictests

And then the test can be run with the same command

          cargo test --features backtrace,parquet_encryption --profile release-nonlto --test sqllogictests -- --include-sqlite

That way we can at least see what is taking so long.

Copy link
Copy Markdown
Contributor Author

@kosiew kosiew Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Runs:

  1. cargo build, cargo test
image
  1. cargo build, use binary build to run test
image
  1. no cargo build, just cargo test
image

From the above interim results, only the binary build test improves the CI run.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will be away from Feb 14-21.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried the fix on #20101 (synced to main) to get the new times per test but it still took over 2 hours there: https://github.com/apache/datafusion/actions/runs/22101965398/job/63873808241?pr=20101. I don't know what could be different.

if [ -z "$TEST_BIN" ]; then
echo "Could not find sqllogictests test binary"
exit 1
fi
echo "TEST_BIN=$TEST_BIN" >> "$GITHUB_ENV"
- name: Run sqllogictest
working-directory: datafusion/sqllogictest
run: |
cargo test --features backtrace,parquet_encryption --profile release-nonlto --test sqllogictests -- --include-sqlite
# sqllogictests expects crate-relative paths for test data.
"$TEST_BIN" --include-sqlite
cargo clean