diff --git a/.github/workflows/ibis-backends.yml b/.github/workflows/ibis-backends.yml index 9b96f488eddc2..7eb4ac6a87223 100644 --- a/.github/workflows/ibis-backends.yml +++ b/.github/workflows/ibis-backends.yml @@ -420,3 +420,67 @@ jobs: with: name: ${{ matrix.backend }}-${{ matrix.python-version }} path: junit.xml + + test_datafusion: + name: DataFusion ubuntu-latest python-${{ matrix.python-version }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: + - "3.7" + - "3.9" + steps: + - name: checkout + uses: actions/checkout@v2 + + - name: checkout + uses: actions/checkout@v2 + with: + path: datafusion + repository: apache/arrow-datafusion + + - name: install python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: install rust + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + + - name: install poetry and maturin + run: pip install poetry maturin + + - name: cache dependencies + uses: actions/cache@v2 + with: + path: ~/.cache/pypoetry + key: datafusion-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('poetry.lock') }} + + - name: install datafusion + working-directory: datafusion + run: maturin develop + + - name: install ibis + run: poetry install --extras datafusion + + - name: download backend data + run: poetry run python ci/datamgr.py download + + - name: install backend data + run: poetry run python ci/datamgr.py datafusion + + - name: run tests + env: + PYTEST_BACKENDS: datafusion + run: ./ci/run_tests.sh + + - name: publish test report + uses: actions/upload-artifact@v2 + if: success() || failure() + with: + name: ${{ matrix.backend }}-${{ matrix.python-version }} + path: junit.xml