Skip to content

feat(datafusion): add array and strings functions (#8895) #20661

feat(datafusion): add array and strings functions (#8895)

feat(datafusion): add array and strings functions (#8895) #20661

Workflow file for this run

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 }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
python-version:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
steps:
- name: checkout
uses: actions/checkout@v4
- name: install poetry
run: pipx install 'poetry==1.8.2'
- name: install python
uses: actions/setup-python@v5
id: install_python
with:
python-version: ${{ matrix.python-version }}
cache: poetry
- 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 ibis
run: poetry install --without dev --without docs --extras "visualization decompiler"
- 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 -m "'core or benchmarks'" --numprocesses auto
- name: run all core tests and run benchmarks once serial
if: matrix.os == 'windows-latest'
run: just ci-check -m "'core or benchmarks'"
- 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 poetry
run: pipx install 'poetry==1.8.2'
- name: install python
uses: actions/setup-python@v5
id: install_python
with:
python-version: "3.12"
cache: poetry
- 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: install ibis
# install duckdb and geospatial because of https://github.com/ibis-project/ibis/issues/4856
run: poetry install --without dev --without docs --without test --extras duckdb --extras geospatial
- name: check shapely and duckdb imports
run: poetry run python -c 'import shapely.geometry, duckdb'
test_doctests:
# FIXME(kszucs): re-enable this build
if: false
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 poetry
run: pipx install 'poetry==1.8.2'
- name: install python
uses: actions/setup-python@v5
id: install_python
with:
python-version: "3.12"
cache: poetry
- name: install ibis with all extras
run: poetry install --without dev --without docs --extras all
- uses: extractions/setup-just@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: run doctests
run: just ci-doctest --junitxml=junit.xml --cov=ibis --cov-report=xml:coverage.xml
- 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 }}