chore(deps): implement Nix testing as separate derivation from env (#… #25576
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: Ibis | |
on: | |
push: | |
# Skip the test suite if all changes are in the docs directory | |
paths-ignore: | |
- "docs/**" | |
- "**/*.md" | |
- "**/*.qmd" | |
- ".envrc" | |
branches: | |
- main | |
- "*.x.x" | |
pull_request: | |
# Skip the test suite if all changes are in the docs directory | |
paths-ignore: | |
- "docs/**" | |
- "**/*.md" | |
- "**/*.qmd" | |
- ".envrc" | |
branches: | |
- main | |
- "*.x.x" | |
merge_group: | |
permissions: | |
contents: read | |
concurrency: | |
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} | |
cancel-in-progress: true | |
env: | |
FORCE_COLOR: "1" | |
SQLALCHEMY_WARN_20: "1" | |
HYPOTHESIS_PROFILE: "ci" | |
jobs: | |
test_core: | |
name: Test ${{ matrix.os }} python-${{ matrix.python-version }} pyarrow-${{ matrix.pyarrow }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
- windows-latest | |
python-version: | |
- "3.10" | |
- "3.11" | |
- "3.12" | |
pyarrow: | |
- true | |
- false | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: install python | |
uses: actions/setup-python@v5 | |
id: install_python | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: install uv | |
uses: astral-sh/[email protected] | |
with: | |
enable-cache: true | |
- name: install ${{ matrix.os }} system dependencies | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
set -euo pipefail | |
sudo apt-get update -y -qq | |
sudo apt-get install -y -q build-essential graphviz libgeos-dev freetds-dev | |
- name: install ${{ matrix.os }} system dependencies | |
if: matrix.os == 'windows-latest' | |
run: choco install graphviz | |
- name: install numpy/pandas/pyarrow | |
if: matrix.pyarrow | |
run: pip install numpy pandas pyarrow pyarrow-hotfix | |
- name: check imports | |
if: matrix.pyarrow | |
run: python -c 'import numpy, pandas, pyarrow, pyarrow_hotfix' | |
- uses: extractions/setup-just@v2 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: run all core tests and run benchmarks once parallel | |
if: matrix.os != 'windows-latest' | |
run: just ci-check "--extra visualization --extra decompiler" -m "'core or benchmark'" --numprocesses auto -rfEs | |
- name: run all core tests and run benchmarks once serial | |
if: matrix.os == 'windows-latest' | |
run: just ci-check "--extra visualization --extra decompiler" -m "'core or benchmark'" -rfEs | |
- name: upload code coverage | |
if: success() | |
continue-on-error: true | |
uses: codecov/codecov-action@v4 | |
with: | |
flags: core,${{ runner.os }},python-${{ steps.install_python.outputs.python-version }} | |
token: ${{ secrets.CODECOV_TOKEN }} | |
test_shapely_duckdb_import: | |
name: Test shapely and duckdb import | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: install python | |
uses: actions/setup-python@v5 | |
id: install_python | |
with: | |
python-version: "3.12" | |
- name: install uv | |
uses: astral-sh/[email protected] | |
with: | |
enable-cache: true | |
- name: install system dependencies | |
run: | | |
set -euo pipefail | |
sudo apt-get update -y -qq | |
sudo apt-get install -y -q build-essential libgeos-dev | |
- name: check shapely and duckdb imports | |
run: uv run --extra duckdb --extra geospatial python -c 'import shapely.geometry, duckdb' | |
test_doctests: | |
name: Doctests | |
runs-on: ubuntu-latest | |
steps: | |
- name: install system dependencies | |
run: | | |
set -euo pipefail | |
sudo apt-get update -y -q | |
sudo apt-get install -y -q build-essential graphviz libgeos-dev freetds-dev unixodbc-dev | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: install python | |
uses: actions/setup-python@v5 | |
id: install_python | |
with: | |
python-version: "3.10" | |
- name: install uv | |
uses: astral-sh/[email protected] | |
with: | |
enable-cache: true | |
- uses: extractions/setup-just@v2 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: run doctests | |
run: just doctest --junitxml=junit.xml --cov=ibis --cov-report=xml:coverage.xml | |
- name: check for dead fixtures | |
run: uv run --all-extras --group tests pytest --dead-fixtures -m 'not flink' | |
- name: upload code coverage | |
if: success() | |
continue-on-error: true | |
uses: codecov/codecov-action@v4 | |
with: | |
flags: core,doctests,${{ runner.os }},python-${{ steps.install_python.outputs.python-version }} | |
token: ${{ secrets.CODECOV_TOKEN }} |