Skip to content

feat: add enforce_concatenated_form #1863

feat: add enforce_concatenated_form

feat: add enforce_concatenated_form #1863

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 --only-binary "numpy,pandas,pyarrow,numexpr,numexpr"
-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: 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 --only-binary "numpy,pandas,pyarrow,numexpr"
-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: 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:
- '3.12'
- '3.11'
- '3.10'
- '3.9'
- '3.8'
extra-pip-constraints:
- "-r requirements-test.txt"
include:
# Lower bounds
- python-version: '3.8'
extra-pip-constraints: "-r requirements-test-minimal.txt"
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/actions-setup-cmake@v1.14
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 --only-binary "numpy,pandas,pyarrow,numexpr"
-v . ./awkward-cpp/dist/*.whl
pytest-github-actions-annotate-failures
${{ matrix.extra-pip-constraints }}
- name: Print versions
run: python -m pip list
- name: Check if kernel specification is sorted
# We don't need to run this all the time
if: matrix.python-version == '3.12'
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:
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=3.8
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 }}-${{ 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 --only-binary "numpy,pandas,pyarrow,numexpr"
-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: Test
run: python -m pytest -vv -rs tests
Linux-cppyy:
# TODO: remove this part of the workflow
# cppyy is not yet released. Let's load some pre-built wheels via docker (as a binary store)
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: '3.11'
- 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 }}-${{ 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: Extract pre-built manylinux cppyy wheels
uses: shrink/actions-docker-extract@v3
with:
image: "docker.io/agoose77/cppyy-wheels:cp311"
path: "/wheels/."
destination: "/tmp/cppyy-wheels"
- name: Install awkward, awkward-cpp, and dependencies
run: >-
python -m pip install --only-binary "numpy,pandas,pyarrow,numexpr"
-v . ./awkward-cpp/dist/*.whl
pytest-github-actions-annotate-failures
/tmp/cppyy-wheels/*
- name: Print versions
run: python -m pip list
- name: Test
run: python -m pytest -vv -rs tests -k cppyy