Skip to content

Merge #2058 (DougBurke) - Address an error introduced in PR 2025 #993

Merge #2058 (DougBurke) - Address an error introduced in PR 2025

Merge #2058 (DougBurke) - Address an error introduced in PR 2025 #993

name: Pip CI
on:
push:
branches:
- main
tags:
- '*'
pull_request:
jobs:
tests:
defaults:
run:
shell: bash
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- name: Linux Minimum Setup
os: ubuntu-latest
python-version: "3.9"
numpy-pkg: 'numpy>=1.21,<1.22'
install-type: develop
test-data: none
- name: Linux Build (w/o Xspec; Python 3.11)
os: ubuntu-latest
python-version: "3.11"
numpy-pkg: 'numpy'
install-type: install
test-data: package
fits-pkg: 'astropy'
matplotlib-pkg: 'matplotlib>=3,<4'
bokeh-pkg: 'bokeh>=3,<4'
- name: Linux Build (w/o Astropy or Xspec)
os: ubuntu-latest
python-version: "3.9"
numpy-pkg: 'numpy'
install-type: install
test-data: package
matplotlib-pkg: 'matplotlib>=3,<4'
bokeh-pkg: 'bokeh>=3,<4'
- name: Linux Build (w/o Matplotlib, Xspec, or test data)
os: ubuntu-latest
python-version: "3.10"
numpy-pkg: 'numpy'
install-type: develop
fits-pkg: 'astropy'
test-data: none
- name: Linux Build (submodule data w/o Matplotlib or Xspec)
os: ubuntu-latest
python-version: "3.9"
numpy-pkg: 'numpy'
install-type: develop
fits-pkg: 'astropy'
test-data: submodule
steps:
- name: Checkout Code
uses: actions/checkout@v4.1.1
with:
submodules: 'True'
- name: Pip Testing Setup - Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Pip Testing Setup - Dependencies
env:
NUMPYVER: ${{ matrix.numpy-pkg }}
FITSBUILD: ${{ matrix.fits-pkg }}
MATPLOTLIBVER: ${{ matrix.matplotlib-pkg }}
BOKEHVER: ${{ matrix.BOKEH-pkg }}
run: |
# In case we forget to set matrix.numpy-pkg
if [ ! -n "${NUMPYVER}" ] ; then
NUMPYVER='numpy'
fi
pip install ${NUMPYVER} ${FITSBUILD} ${MATPLOTLIBVER} ${BOKEHVER}
# Ensure we use an old-enough setuptools: see issue #1456
pip install 'setuptools < 60'
- name: Build Sherpa (install)
if: matrix.install-type == 'install'
run: |
pip install . --verbose
- name: Build Sherpa (develop)
if: matrix.install-type == 'develop'
run: |
pip install -e . --verbose
- name: install pytest-xvfb
if: matrix.test-data == 'package'
run: |
pip install pytest-xvfb
- name: sherpa_test with test-data=${{ matrix.test-data }}
if: matrix.test-data == 'package' || matrix.test-data == 'none'
env:
TEST: ${{ matrix.test-data }}
run: |
git submodule deinit -f .
pip install pytest-cov
cd $HOME
sherpa_test --cov=sherpa --cov-report=xml:${{ github.workspace }}/coverage.xml
- name: Submodule test with pytest
if: matrix.test-data == 'submodule'
run: |
pip install -r test_requirements.txt
pip install pytest-cov
cd $HOME
pytest --cov=sherpa --cov-report=xml:${{ github.workspace }}/coverage.xml
- name: upload coverage
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ${{ github.workspace }}/coverage.xml
verbose: true
- name: Smoke Test
env:
FITS: ${{ matrix.fits-pkg }}
run: |
smokevars="-v 3"
if [ ${FITS} != '' ] ; then
smokevars="-f ${FITS} ${smokevars}"
fi
echo "** smoke test: ${smokevars}"
cd ${HOME}
sherpa_smoke ${smokevars}