Merge pull request #2383 from desihub/zproc-coadd #5680
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
# Workflow is based on the Astropy GitHub actions workflow, ci_workflows.yml | |
name: CI | |
on: | |
push: | |
branches: | |
- '*' | |
tags: | |
- '*' | |
pull_request: | |
jobs: | |
tests: | |
name: Unit tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ['3.9', '3.10'] # fuji+guadalupe, not ready for 3.11 yet? | |
astropy-version: ['==5.0', '<6'] # fuji+guadalupe, latest | |
fitsio-version: ['==1.1.6', '<2'] # fuji+guadalupe, latest | |
numpy-version: ['<1.23'] # to keep asscalar, used by astropy | |
env: | |
DESIUTIL_VERSION: 3.4.2 | |
DESIMODEL_DATA: branches/test-0.18 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Python dependencies | |
run: | | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install pytest | |
python -m pip install git+https://github.com/desihub/desiutil.git@${DESIUTIL_VERSION}#egg=desiutil | |
python -m pip install -r requirements.txt | |
python -m pip install -U 'numpy${{ matrix.numpy-version }}' | |
python -m pip install -U 'astropy${{ matrix.astropy-version }}' | |
python -m pip cache remove fitsio | |
python -m pip install --no-deps --force-reinstall --ignore-installed 'fitsio${{ matrix.fitsio-version }}' | |
svn export https://desi.lbl.gov/svn/code/desimodel/${DESIMODEL_DATA}/data | |
- name: Run the test | |
run: DESIMODEL=$(pwd) pytest | |
coverage: | |
name: Test coverage | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ['3.10'] # latest | |
astropy-version: ['<6'] # latest | |
fitsio-version: ['<2'] # latest | |
numpy-version: ['<1.23'] # to keep asscalar, used by astropy | |
env: | |
DESIUTIL_VERSION: 3.4.2 | |
DESIMODEL_DATA: branches/test-0.18 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Python dependencies | |
run: | | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install pytest pytest-cov coveralls | |
python -m pip install git+https://github.com/desihub/desiutil.git@${DESIUTIL_VERSION}#egg=desiutil | |
python -m pip install -r requirements.txt | |
python -m pip install specutils | |
python -m pip install -U 'numpy${{ matrix.numpy-version }}' | |
python -m pip install -U 'astropy${{ matrix.astropy-version }}' | |
python -m pip cache remove fitsio | |
python -m pip install --no-deps --force-reinstall --ignore-installed 'fitsio${{ matrix.fitsio-version }}' | |
svn export https://desi.lbl.gov/svn/code/desimodel/${DESIMODEL_DATA}/data | |
- name: Run the test with coverage | |
run: DESIMODEL=$(pwd) pytest --cov | |
- name: Coveralls | |
env: | |
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: coveralls | |
desilite: | |
name: Test minimal env | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ['3.10'] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Python dependencies | |
run: | | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install astropy scipy numba "numpy<2.0" | |
python -m pip install pytest | |
python -m pip cache remove fitsio | |
python -m pip install --no-deps --force-reinstall --ignore-installed fitsio | |
python -m pip install git+https://github.com/desihub/desiutil.git | |
python -m pip install git+https://github.com/desihub/desitarget.git | |
- name: Run just the lite env test | |
run: pytest py/desispec/test/test_lite.py | |
docs: | |
name: Doc test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ['3.9'] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Python dependencies | |
run: python -m pip install --upgrade pip setuptools wheel Sphinx | |
# run: python -m pip install --upgrade pip wheel docutils\<0.18 Sphinx==3.1.2 | |
- name: Test the documentation | |
run: sphinx-build -W --keep-going -b html doc doc/_build/html | |
api: | |
name: API doc completeness test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ['3.9'] | |
env: | |
DESIUTIL_VERSION: 3.3.0 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Python dependencies | |
run: | | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install git+https://github.com/desihub/desiutil.git@${DESIUTIL_VERSION}#egg=desiutil | |
- name: Generate api.rst | |
run: desi_api_file --api ./api.rst desispec | |
- name: Compare generated api.rst to checked-in version | |
run: diff --ignore-space-change --ignore-blank-lines ./api.rst ./doc/api.rst | |
style: | |
name: Style check | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ['3.9'] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Python dependencies | |
run: python -m pip install --upgrade pip setuptools wheel pycodestyle | |
- name: Test the style; failures are allowed | |
# This is equivalent to an allowed falure. | |
continue-on-error: true | |
run: pycodestyle --count py/desispec | |
# SAVE |