Pre-compute window function operands to simplify Dask graph #4366
Workflow file for this run
This file contains 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: Test Python package | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
# When this workflow is queued, automatically cancel any previous running | |
# or pending jobs from the same branch | |
concurrency: | |
group: test-${{ github.head_ref }} | |
cancel-in-progress: true | |
# Required shell entrypoint to have properly activated conda environments | |
defaults: | |
run: | |
shell: bash -l {0} | |
jobs: | |
detect-ci-trigger: | |
name: Check for upstream trigger phrase | |
runs-on: ubuntu-latest | |
if: github.repository == 'dask-contrib/dask-sql' | |
outputs: | |
triggered: ${{ steps.detect-trigger.outputs.trigger-found }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 2 | |
- uses: xarray-contrib/ci-trigger@v1.2 | |
id: detect-trigger | |
with: | |
keyword: "[test-upstream]" | |
test: | |
name: "Build & Test (${{ matrix.os }}, python: ${{ matrix.python }}, distributed: ${{ matrix.distributed }}, query-planning: ${{ matrix.query-planning }})" | |
needs: [detect-ci-trigger] | |
runs-on: ${{ matrix.os }} | |
env: | |
CONDA_FILE: continuous_integration/environment-${{ matrix.python }}.yaml | |
DASK_SQL_DISTRIBUTED_TESTS: ${{ matrix.distributed }} | |
DASK_DATAFRAME__QUERY_PLANNING: ${{ matrix.query-planning }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
python: ["3.9", "3.10", "3.11", "3.12"] | |
distributed: [false] | |
query-planning: [true] | |
include: | |
# run tests on a distributed client | |
- os: "ubuntu-latest" | |
python: "3.9" | |
distributed: true | |
query-planning: true | |
- os: "ubuntu-latest" | |
python: "3.11" | |
distributed: true | |
query-planning: true | |
# run tests with query planning disabled | |
- os: "ubuntu-latest" | |
python: "3.9" | |
distributed: false | |
query-planning: false | |
- os: "ubuntu-latest" | |
python: "3.11" | |
distributed: false | |
query-planning: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: conda-incubator/setup-miniconda@v2.3.0 | |
with: | |
miniforge-variant: Mambaforge | |
use-mamba: true | |
python-version: ${{ matrix.python }} | |
channel-priority: strict | |
activate-environment: dask-sql | |
environment-file: ${{ env.CONDA_FILE }} | |
run-post: ${{ matrix.os != 'windows-latest' && 'true' || 'false' }} | |
- name: Cache Rust | |
uses: Swatinem/rust-cache@v2 | |
with: | |
workspaces: dask_planner | |
shared-key: test | |
- name: Install x86_64-apple-darwin target | |
if: matrix.os == 'macos-latest' | |
run: rustup target add x86_64-apple-darwin | |
- name: Build the Rust DataFusion bindings | |
run: | | |
maturin develop | |
- name: Install hive testing dependencies | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
docker pull bde2020/hive:2.3.2-postgresql-metastore | |
docker pull bde2020/hive-metastore-postgresql:2.3.0 | |
- name: Optionally install upstream dev Dask | |
if: needs.detect-ci-trigger.outputs.triggered == 'true' | |
run: | | |
mamba install --no-channel-priority dask/label/dev::dask | |
- name: Test with pytest | |
run: | | |
pytest --junitxml=junit/test-results.xml --cov-report=xml -n auto tests --dist loadfile | |
- name: Upload pytest test results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: pytest-results | |
path: junit/test-results.xml | |
- name: Upload coverage to Codecov | |
if: github.repository == 'dask-contrib/dask-sql' | |
uses: codecov/codecov-action@v3 | |
import: | |
name: "Test importing with bare requirements (query-planning: ${{ matrix.query-planning }})" | |
needs: [detect-ci-trigger] | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
query-planning: [true, false] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: conda-incubator/setup-miniconda@v2.3.0 | |
with: | |
miniforge-variant: Mambaforge | |
use-mamba: true | |
python-version: "3.9" | |
channel-priority: strict | |
- name: Install dependencies and nothing else | |
run: | | |
pip install -e . -vv | |
which python | |
pip list | |
mamba list | |
- name: Optionally install upstream dev Dask | |
if: needs.detect-ci-trigger.outputs.triggered == 'true' | |
run: | | |
python -m pip install git+https://github.com/dask/dask | |
python -m pip install git+https://github.com/dask/dask-expr | |
python -m pip install git+https://github.com/dask/distributed | |
- name: Try to import dask-sql | |
env: | |
DASK_DATAFRAME_QUERY_PLANNING: ${{ matrix.query-planning }} | |
run: | | |
python -c "import dask_sql; print('ok')" |