Merge pull request #2151 from desihub/nightqa_v25 #4529
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.10 yet | |
astropy-version: ['==5.0', '<5.1'] # 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.2.6 | |
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 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.9'] # fuji+guadalupe version | |
astropy-version: ['==5.0'] # fuji+guadalupe version | |
fitsio-version: ['==1.1.6'] # fuji+guadalupe version | |
numpy-version: ['<1.23'] # to keep asscalar, used by astropy | |
env: | |
DESIUTIL_VERSION: 3.2.6 | |
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 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 -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 | |
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 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 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 |