Skip to content

Merge pull request #92 from desihub/updates-for-kibo #150

Merge pull request #92 from desihub/updates-for-kibo

Merge pull request #92 from desihub/updates-for-kibo #150

# # Workflow is based on the Astropy GitHub actions workflow, ci_workflows.yml
name: CI
on:
push:
branches:
- '*'
pull_request:
branches:
- '*'
jobs:
tests:
name: Unit tests
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest] # Add more os?
python-version: ['3.8', '3.9']
astropy-version: ['<5.0', '<5.1']
numpy-version: ['<1.20', '<1.21', '<1.22']
scipy-version: ['<1.6', '<1.7']
# matplotlib >= 3.3 brings in a dependency on Pillow, which requires numpy >= 1.21 unless it's pinned to Pillow<10.4.
matplotlib-version: ['<3.4', '<3.5']
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip wheel setuptools
python -m pip install pytest pytest-astropy pyyaml Pillow\<10.4
python -m pip install 'scipy${{ matrix.scipy-version }}'
python -m pip install 'matplotlib${{ matrix.matplotlib-version }}'
python -m pip install 'astropy${{ matrix.astropy-version }}'
python -m pip install 'numpy${{ matrix.numpy-version }}'
- name: Run the test
run: pytest
#
# Temporarily use coverage to test more recent versions.
# Note that Astropy>=5.1 introduces an ordering change in unit display, which
# causes doctest failures.
#
coverage:
name: Test coverage
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ['3.10']
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip wheel setuptools
python -m pip install pytest pytest-astropy pyyaml coveralls
python -m pip install numpy\<1.23 scipy\<1.9 matplotlib\<3.9 astropy\<5.1
- name: Run the test with coverage
run: pytest --cov
- name: Coveralls
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
run: coveralls
docs:
name: Doc test
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ['3.10']
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip wheel setuptools Sphinx\<8
python -m pip install -e .[docs]
- name: Test the documentation
run: sphinx-build -W --keep-going -b html docs docs/_build/html
style:
name: Style test
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ['3.10']
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip wheel setuptools flake8
- name: Test the style
# If allowed failures are needed, uncomment continue-on-error.
# continue-on-error: true
run: flake8 speclite --count --max-line-length=100
#
# Temporary test to make sure the package can at least be installed
# for more recent Python versions.
#
install:
name: Installation test
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest]
python-version: ['3.10', '3.11', '3.12']
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip wheel setuptools
python -m pip install numpy\<2.0 scipy matplotlib astropy pyyaml
- name: Test installing from the checkout
run: python -m pip install .
- name: Run a script that should have been installed
run: speclite_benchmark --all