Skip to content

test: mark spark trunc generated column tests as pyarrow #12185

test: mark spark trunc generated column tests as pyarrow

test: mark spark trunc generated column tests as pyarrow #12185

Workflow file for this run

name: build
on:
push:
branches: [main, "rust-v*"]
pull_request:
branches: [main, "rust-v*", next, next/*]
merge_group:
env:
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
jobs:
check:
runs-on: ubuntu-latest
env:
DEFAULT_FEATURES: "azure,datafusion,s3,gcs,glue,hdfs"
steps:
# v6.0.2
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- uses: ./.github/actions/setup-builder
- name: load DAT
run: make setup-dat
- name: Rustfmt Check
# <https://github.com/actions-rust-lang/rustfmt/releases/tag/v1.1.2>
uses: actions-rust-lang/rustfmt@4066006ec54a31931b9b1fddfd38f2fdf2d27143
- name: build and lint with clippy
run: cargo clippy --profile=ci --features ${{ env.DEFAULT_FEATURES }} --tests
- name: Run Machete to check for unused dependencies
uses: bnjbvr/cargo-machete@aa070c61641e482bc2b5d41c97b496ee4755bf37
test-matrix:
runs-on: ubuntu-latest
outputs:
targets: ${{ steps.matrix.outputs.os }}
steps:
- name: Define test matrix
id: matrix
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
echo 'os=["ubuntu-latest"]' >> "$GITHUB_OUTPUT"
else
echo 'os=["ubuntu-latest", "windows-latest", "macos-latest"]' >> "$GITHUB_OUTPUT"
fi
build:
needs: test-matrix
strategy:
fail-fast: true
matrix:
os: ${{ fromJSON(needs.test-matrix.outputs.targets) }}
runs-on: ${{ matrix.os }}
env:
DEFAULT_FEATURES: "azure,datafusion,s3,gcs,glue,hdfs"
steps:
# v6.0.2
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- uses: ./.github/actions/setup-builder
- name: Set up Python 3.13
if: matrix.os == 'windows-latest'
# <https://github.com/actions/setup-python/releases/tag/v6.2.0>
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
with:
python-version: 3.13
- name: Default build
run: cargo build --profile=ci --package deltalake
- name: Default features with clippy
run: cargo clippy --profile=ci --features ${{ env.DEFAULT_FEATURES }}
- name: Spot-check build for native-tls features
run: cargo build --profile=ci --no-default-features --features azure,datafusion,s3-native-tls,gcs,glue
- name: Check no default features (except rustls)
run: cargo check --profile=ci --no-default-features --features rustls
test:
name: Unit Tests
needs: test-matrix
strategy:
fail-fast: true
matrix:
os: ${{ fromJSON(needs.test-matrix.outputs.targets) }}
runs-on: ${{ matrix.os }}
env:
DEFAULT_FEATURES: "datafusion"
steps:
# v6.0.2
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- uses: ./.github/actions/setup-builder
- name: Claim disk space
if: matrix.os == 'ubuntu-latest'
shell: bash
run: |
sudo rm -rf /opt/microsoft || true # 783M
sudo rm -rf /usr/local/julia* || true # 1008M
sudo rm -rf /usr/local/share/chromium || true # 613M
sudo rm -rf /usr/local/share/powershell || true # 1244M
sudo rm -rf /usr/share/swift || true # 3207M
sudo df -TBG /
- name: Set up Python 3.13
if: matrix.os == 'windows-latest'
# <https://github.com/actions/setup-python/releases/tag/v6.2.0>
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405
with:
python-version: 3.13
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Run tests
shell: bash
run: |
make setup-dat
cargo llvm-cov --features ${{ env.DEFAULT_FEATURES }} \
--workspace \
--codecov \
--output-path codecov.json \
--exclude deltalake \
--exclude deltalake-azure \
--exclude deltalake-aws \
--exclude deltalake-hdfs \
--exclude deltalake-lakefs
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
files: codecov.json
fail_ci_if_error: true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}