Skip to content

[python/ci] Remote-storage CI YAML [WIP] #26

[python/ci] Remote-storage CI YAML [WIP]

[python/ci] Remote-storage CI YAML [WIP] #26

name: TileDB-SOMA Python CI (remote storage)
on:
workflow_dispatch:
#
# Not for regular use:
# TEMP
pull_request:
#
# TODO: a nightly cron
env:
TILEDB_REST_TOKEN: ${{ secrets.TILEDB_REST_UNITTEST_TOKEN}}
jobs:
ci:
strategy:
fail-fast: false
matrix:
include:
- name: linux
os: ubuntu-24.04
python_version: 3.9
cc: gcc-13
cxx: g++-13
# XXX TEMP
#- name: macos
# os: macOS-latest
# python_version: 3.9
# cc: clang
# cxx: clang++
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Show matrix OS
run: echo "matrix.os:" ${{ matrix.os }}
- name: Linux CPU info
if: ${{ matrix.os == 'ubuntu-24.04' }}
run: cat /proc/cpuinfo
- name: MacOS CPU info
if: ${{ matrix.os == 'macOS-latest' }}
run: sysctl -a | grep cpu
- name: Select XCode version
if: startsWith(matrix.os, 'macos')
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.4'
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
cache: pip
cache-dependency-path: ./apis/python/setup.py
- name: Show XCode version
run: clang --version
- name: Check out TileDB-SOMA
uses: actions/checkout@v4
with:
fetch-depth: 0 # ensure we get all tags to inform package version determination
- name: Log pip dependencies
run: pip list
- name: Install tiledbsoma
# If you'reiterating on the testing framework itself, install from PyPI to avoid the
# time-consuming build. If you're trying to evaluate the code modified by a PR,
# install from source.
#
# From PyPI:
run: pip install tiledbsoma==1.15.7
#
# From source:
# run: pip -v install -e apis/python[all] -C "--build-option=--no-tiledb-deprecated"
#
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
- name: Install dependencies
run: pip install --prefer-binary pytest typeguard tiledb.cloud
- name: Show package versions
run: python scripts/show-versions.py
- name: Show tiledb.cloud version
run: python -c 'import tiledb.cloud; print(tiledb.cloud.version.version)'
- name: Run pytests for Python
shell: bash
run: python -m pytest apis/python/remote_tests -v --durations=20 --maxfail=50