Skip to content

ci: fix oldest-supported-dependencies test workflow #1622

ci: fix oldest-supported-dependencies test workflow

ci: fix oldest-supported-dependencies test workflow #1622

Workflow file for this run

name: Tests
on:
pull_request:
paths-ignore:
- README.md
- CONTRIBUTING.md
- CITATION.cff
- LICENSE
- .readthedocs.yml
- docs-img/**
- docs/**
- awkward-cpp/docs/**
- studies/**
schedule:
- cron: 0 12 1 * *
workflow_dispatch:
concurrency:
group: 'test-${{ github.head_ref || github.run_id }}'
cancel-in-progress: true
env:
# Leverage reproducible builds by setting a constant SOURCE_DATE_EPOCH
# This will ensure that the hash of the awkward-cpp directory remains
# constant for unchanged files, meaning that it can be used for caching
SOURCE_DATE_EPOCH: "1668811211"
jobs:
Windows:
strategy:
matrix:
python-version:
- '3.12'
- '3.11'
- '3.10'
- '3.9'
- '3.8'
python-architecture:
- x64
include:
- python-version: '3.9'
python-architecture: x86
runs-on: windows-2019
env:
PIP_ONLY_BINARY: cmake,numpy,pandas
PIP_PRE: "1"
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: 'Python ${{ matrix.python-version }}'
uses: actions/setup-python@v4
with:
python-version: '${{ matrix.python-version }}'
architecture: '${{ matrix.python-architecture }}'
allow-prereleases: true
- name: Generate build files
run: pipx run nox -s prepare -- --headers --signatures --tests
- name: Cache awkward-cpp wheel
id: cache-awkward-cpp-wheel
uses: actions/cache@v3
with:
path: awkward-cpp/dist
key: ${{ github.job }}-${{ matrix.python-version }}-${{ matrix.python-architecture }}-${{ hashFiles('awkward-cpp/**') }}
- name: Build awkward-cpp wheel
if: steps.cache-awkward-cpp-wheel.outputs.cache-hit != 'true'
run: |
python -m pip install build
python -m build -w awkward-cpp
- name: Install awkward, awkward-cpp, and dependencies
run: >-
python -m pip install -v . @(get-childitem -path awkward-cpp/dist/*.whl)
pytest-github-actions-annotate-failures
-r requirements-test.txt
- name: Print versions
run: python -m pip list
- name: Check if kernel specification is sorted
run: pipx run nox -s diagnostics -- --check-spec-sorted
- name: Test specification
if: steps.cache-awkward-cpp-wheel.outputs.cache-hit != 'true'
run: python -m pytest -vv -rs awkward-cpp/tests-spec
- name: Test specification with explicitly defined values
if: steps.cache-awkward-cpp-wheel.outputs.cache-hit != 'true'
run: python -m pytest -vv -rs awkward-cpp/tests-spec-explicit
- name: Test CPU kernels
if: steps.cache-awkward-cpp-wheel.outputs.cache-hit != 'true'
run: python -m pytest -vv -rs awkward-cpp/tests-cpu-kernels
- name: Test
run: python -m pytest -vv -rs tests
MacOS:
strategy:
matrix:
python-version:
- '3.12'
- '3.11'
- '3.10'
- '3.9'
- '3.8'
runs-on: macos-11
env:
PIP_ONLY_BINARY: cmake,numpy
PIP_PRE: "1"
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: 'Python ${{ matrix.python-version }}'
uses: actions/setup-python@v4
with:
python-version: '${{ matrix.python-version }}'
allow-prereleases: true
- name: Debug wheel tags
run: python -m pip debug --verbose
- name: Generate build files
run: pipx run nox -s prepare -- --headers --signatures --tests
- name: Cache awkward-cpp wheel
id: cache-awkward-cpp-wheel
uses: actions/cache@v3
with:
path: ./awkward-cpp/dist
key: ${{ github.job }}-${{ matrix.python-version }}-${{ hashFiles('awkward-cpp/**') }}
- name: Build awkward-cpp wheel
if: steps.cache-awkward-cpp-wheel.outputs.cache-hit != 'true'
run: |
python -m pip install build
python -m build -w ./awkward-cpp
- name: Install awkward, awkward-cpp, dask-awkward, and dependencies
run: >-
python -m pip install -v . ./awkward-cpp/dist/*.whl
pytest-github-actions-annotate-failures
dask-awkward
-r requirements-test.txt
- name: Print versions
run: python -m pip list
- name: Check if kernel specification is sorted
run: pipx run nox -s diagnostics -- --check-spec-sorted
- name: Test specification
if: steps.cache-awkward-cpp-wheel.outputs.cache-hit != 'true'
run: python -m pytest -vv -rs awkward-cpp/tests-spec
- name: Test specification with explicitly defined values
if: steps.cache-awkward-cpp-wheel.outputs.cache-hit != 'true'
run: python -m pytest -vv -rs awkward-cpp/tests-spec-explicit
- name: Test CPU kernels
if: steps.cache-awkward-cpp-wheel.outputs.cache-hit != 'true'
run: python -m pytest -vv -rs awkward-cpp/tests-cpu-kernels
- name: Test
run: python -m pytest -vv -rs tests
Linux:
strategy:
matrix:
python-version:
# This case is covered by our "include" test for 3.12
# - '3.12'
- '3.11'
- '3.10'
- '3.9'
- '3.8'
numpy-package:
- "numpy"
pyarrow-package:
- "pyarrow"
include:
- python-version: '3.8'
numpy-package: "numpy==1.18.0"
pyarrow-package: "pyarrow"
- python-version: '3.8'
numpy-package: "numpy"
pyarrow-package: "pyarrow==7.0.0"
- python-version: '3.12'
numpy-package: "numpy>=1.26.0"
pyarrow-package: "pyarrow;python_version<'3.12'"
runs-on: ubuntu-22.04
env:
PIP_ONLY_BINARY: cmake
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: 'Python ${{ matrix.python-version }}'
uses: actions/setup-python@v4
with:
python-version: '${{ matrix.python-version }}'
allow-prereleases: true
- name: Oldest supported CMake
uses: jwlawson/[email protected]
with:
cmake-version: '3.15.x'
- name: Generate build files
run: pipx run nox -s prepare -- --headers --signatures --tests
- name: Cache awkward-cpp wheel
id: cache-awkward-cpp-wheel
uses: actions/cache@v3
with:
path: ./awkward-cpp/dist
key: ${{ github.job }}-${{ matrix.python-version }}-cmake315-${{ hashFiles('awkward-cpp/**') }}
- name: Build awkward-cpp wheel
if: steps.cache-awkward-cpp-wheel.outputs.cache-hit != 'true'
run: |
python -m pip install build
python -m build -w ./awkward-cpp
- name: Install awkward, awkward-cpp, and dependencies
run: >-
python -m pip install -v . ./awkward-cpp/dist/*.whl
"${{ matrix.numpy-package }}" "${{ matrix.pyarrow-package }}"
pytest-github-actions-annotate-failures
-r requirements-test.txt
- name: Print versions
run: python -m pip list
- name: Check if kernel specification is sorted
run: pipx run nox -s diagnostics -- --check-spec-sorted
- name: Test specification
if: steps.cache-awkward-cpp-wheel.outputs.cache-hit != 'true'
run: python -m pytest -vv -rs awkward-cpp/tests-spec
- name: Test specification with explicitly defined values
if: steps.cache-awkward-cpp-wheel.outputs.cache-hit != 'true'
run: python -m pytest -vv -rs awkward-cpp/tests-spec-explicit
- name: Test CPU kernels
if: steps.cache-awkward-cpp-wheel.outputs.cache-hit != 'true'
run: python -m pytest -vv -rs awkward-cpp/tests-cpu-kernels
- name: Test
run: >-
python -m pytest -vv -rs tests --cov=awkward --cov-report=term
--cov-report=xml
- name: Upload Codecov results
uses: codecov/codecov-action@v3
if: matrix.python-version == '3.9'
Linux-ROOT-dask-awkward:
strategy:
matrix:
python-version:
- '3.8'
runs-on: ubuntu-20.04
env:
PIP_ONLY_BINARY: cmake
timeout-minutes: 30
# Required for miniconda to activate conda
defaults:
run:
shell: "bash -l {0}"
steps:
- uses: "actions/checkout@v4"
with:
submodules: true
- name: Setup Python via Conda
uses: mamba-org/setup-micromamba@v1
with:
# Cache invalidates daily by default
cache-environment: true
environment-name: awkward
create-args: >-
python=${{ env.PYTHON_VERSION }}
numpy
root
- name: Generate build files
run: pipx run nox -s prepare -- --headers --signatures --tests
- name: Cache awkward-cpp wheel
id: cache-awkward-cpp-wheel
uses: actions/cache@v3
with:
path: ./awkward-cpp/dist
key: ${{ github.job }}-${{ matrix.python-version }}-${{ hashFiles('awkward-cpp/**') }}
- name: Build awkward-cpp wheel
if: steps.cache-awkward-cpp-wheel.outputs.cache-hit != 'true'
run: |
python3 -m pip install build
python3 -m build -w ./awkward-cpp
- name: Install awkward, awkward-cpp, dask-awkward, and dependencies
run: >-
python -m pip install -v . ./awkward-cpp/dist/*.whl
"${{ matrix.numpy-package }}" "${{ matrix.pyarrow-package }}"
pytest-github-actions-annotate-failures
dask-awkward
-r requirements-test.txt
- name: Print versions
run: python -m pip list
- name: Test
run: python -m pytest -vv -rs tests