Merge pull request #4684 from neutrinoceros/update_support_table #1562
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI (bleeding edge) | |
# this workflow is heavily inspired from pandas, see | |
# https://github.com/pandas-dev/pandas/blob/master/.github/workflows/python-dev.yml | |
# goals: check stability against | |
# - dev version of Python, numpy, matplotlib, and unyt | |
# - Cython and pytest pre-releases | |
# - building with future pip default options | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
paths: | |
- .github/workflows/bleeding-edge.yaml | |
schedule: | |
# run this every Wednesday at 3 am UTC | |
- cron: 0 3 * * 3 | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
name: "tests with bleeding-edge crucial deps" | |
timeout-minutes: 60 | |
concurrency: | |
# auto-cancel any in-progress job *on the same branch* | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Set up Python (newest testable version) | |
uses: actions/setup-python@v4 | |
with: | |
# the '-dev' suffix allows to use pre-releases if no final release is available yet | |
# this version should be upgraded as often as possible, typically once a year when | |
# Cython, numpy and matplotlib are known to be compatible | |
python-version: '3.12-dev' | |
- name: Install dependencies | |
# PyYAML needs to be installed in isolation for now, because of a known | |
# incompatibility with Cython 3 | |
# see https://github.com/yaml/pyyaml/issues/601 | |
# and https://github.com/cython/cython/issues/4568 | |
# Cython 3.0.2 has a defect on Python 3.12, so we install the -fixed- dev version | |
# from source for now. | |
# see https://github.com/cython/cython/issues/5724 | |
# Cython can be installed from PyPI binaries again when the patch is included | |
# in a release (likely in version 3.0.3) | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install --upgrade setuptools wheel | |
python -m pip install --pre --only-binary ":all:" numpy matplotlib \ | |
--extra-index https://pypi.anaconda.org/scientific-python-nightly-wheels/simple | |
python -m pip install --pre ewah-bool-utils | |
python -m pip install git+https://github.com/yt-project/unyt.git | |
python -m pip install --pre pytest PyYAML | |
python -m pip install git+https://github.com/cython/cython.git | |
- name: Build | |
# --no-build-isolation is used to guarantee that build time dependencies | |
# are not installed by pip as specified from pyproject.toml, hence we get | |
# to use the dev version of numpy at build time. | |
run: | | |
python setup.py build_ext -q -j2 | |
python -m pip install -e .[test] --no-build-isolation | |
- run: python -m pip list | |
- name: Run Tests | |
run: | | |
yt config set --local yt log_level 50 # Disable excessive output | |
pytest -vvv --color=yes | |
create-issue: | |
if: ${{ failure() && github.event_name == 'schedule' }} | |
needs: [build] | |
permissions: | |
issues: write | |
runs-on: ubuntu-latest | |
name: Create issue on failure | |
steps: | |
- name: Create issue on failure | |
uses: imjohnbo/issue-bot@v3 | |
with: | |
title: 'TST: Upcoming dependency test failures' | |
body: | | |
The weekly build with future dependencies has failed. Check the logs | |
https://github.com/${{github.repository}}/actions/runs/${{github.run_id}} | |
labels: 'tests: running tests,' | |
pinned: false | |
close-previous: false | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |