Skip to content

Integration Tests

Integration Tests #31

# https://github.com/scikit-hep/awkward/blob/main/.github/workflows/test.yml
# https://github.com/dask-contrib/dask-awkward/blob/main/.github/workflows/pypi-tests.yml
# https://github.com/scikit-hep/uproot5/blob/main/.github/workflows/build-test.yml
# https://github.com/scikit-hep/vector/blob/main/.github/workflows/ci.yml
# https://github.com/scikit-hep/coffea/blob/master/.github/workflows/ci.yml
name: Integration Tests
on:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# os: [ubuntu-latest, macOS-latest, windows-latest] # macOS & windows currently broken
os: [ubuntu-latest]
java-version: [17]
java-distribution: ["corretto"]
python-version:
- "3.9" # lowest
# - "3.10"
# - "3.11"
# - "3.12"
- "3.13" # highest
env:
UV_SYSTEM_PYTHON: 1
name: test (${{ matrix.os }}) - Python ${{ matrix.python-version }}, JDK${{ matrix.java-version }}
steps:
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: JDK ${{ matrix.java-distribution }}/${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java-version }}
distribution: ${{ matrix.java-distribution }}
- name: Add workaround for 3.13 + cramjam
if: matrix.python-version == '3.13'
run: echo 'PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1' >> $GITHUB_ENV
shell: bash
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Sync & activate env
run: |
GIT_LFS_SKIP_SMUDGE=1 uv sync
source .venv/bin/activate
- name: Clone scikit-hep/awkward
uses: actions/checkout@v4
with:
repository: scikit-hep/awkward
path: repo-awkward
submodules: true
ref: "main"
- name: Clone dask-contrib/dask-awkward
uses: actions/checkout@v4
with:
repository: dask-contrib/dask-awkward
path: repo-dask-awkward
ref: "main"
fetch-depth: 0
lfs: true
- name: Clone scikit-hep/uproot5
uses: actions/checkout@v4
with:
repository: scikit-hep/uproot5
path: repo-uproot5
ref: "main"
- name: Clone scikit-hep/vector
uses: actions/checkout@v4
with:
repository: scikit-hep/vector
path: repo-vector
ref: "main"
- name: Clone CoffeaTeam/coffea
uses: actions/checkout@v4
with:
repository: scikit-hep/coffea
path: repo-coffea
ref: "master"
fetch-depth: 0
# - name: Build scikit-hep/awkward
# shell: bash -el {0}
# run: |
# cd repo-awkward
# pipx run nox -s prepare -- --headers --signatures --tests
# uv pip install -r requirements-test-full.txt
# uv pip install -vv ./awkward-cpp
# uv pip install -e .[test]
# cd ..
- name: Build scikit-hep/awkward
shell: bash -el {0}
run: |
cd repo-awkward
pipx run nox -s prepare -- --headers --signatures --tests
uv pip install -vv ./awkward-cpp
cd ..
# - name: Build env
# shell: bash -el {0}
# run: |
# uv pip install -r pyproject.toml
# - name: Build dask-contrib/dask-awkward
# shell: bash -el {0}
# run: |
# cd repo-dask-awkward
# uv pip install -e .[complete,test]
# cd ..
# - name: Build scikit-hep/uproot5
# shell: bash -el {0}
# run: |
# cd repo-uproot5
# uv pip install -e .[test,dev]
# cd ..
# - name: Build scikit-hep/vector
# shell: bash -el {0}
# run: |
# cd repo-vector
# uv pip install -e .[dev]
# cd ..
# - name: Build scikit-hep/coffea
# shell: bash -el {0}
# run: |
# cd repo-coffea
# uv pip install -e '.[dev,dask]'
# cd ..
# - name: Build only cloned repos
# shell: bash -el {0}
# run: |
# uv pip install -e "repo-awkward" --no-deps
# uv pip install -e "repo-dask-awkward" --no-deps
# uv pip install -e "repo-uproot5" --no-deps
# uv pip install -e "repo-vector" --no-deps
# uv pip install -e "repo-coffea" --no-deps
- name: Show all versions
shell: bash -el {0}
run: |
uv pip list --system
python -c 'import awkward, dask_awkward, uproot, vector, coffea; print(f"{awkward.__version__ = }\n{dask_awkward.__version__ = }\n{uproot.__version__ = }\n{vector.__version__ = }\n{coffea.__version__ = }")'
- name: Test scikit-hep/awkward
shell: bash -el {0}
run: |
cd repo-awkward
pytest -vv -rs tests
cd ..
- name: Test dask-contrib/dask-awkward
shell: bash -el {0}
run: |
cd repo-dask-awkward
pytest -vv -rs tests
cd ..
- name: Test scikit-hep/uproot5
shell: bash -el {0}
run: |
cd repo-uproot5
pytest -vv tests --reruns 3 --reruns-delay 30 --only-rerun "(?i)http|timeout|connection|socket"
cd ..
- name: Test dask-contrib/vector
shell: bash -el {0}
run: |
cd repo-vector
pytest -vv -rs tests --ignore tests/test_notebooks.py
cd ..
- name: Test scikit-hep/coffea
shell: bash -el {0}
run: |
cd repo-coffea
pytest -vv -rs tests --deselect=test_taskvine
cd ..