Skip to content

Merge pull request #192 from desihub/ADM-new-redrock-cols #834

Merge pull request #192 from desihub/ADM-new-redrock-cols

Merge pull request #192 from desihub/ADM-new-redrock-cols #834

# Workflow is based on the Astropy GitHub actions workflow, ci_workflows.yml
name: CI
on:
push:
branches:
- '*'
tags:
- '*'
pull_request:
jobs:
tests:
name: Standard Python tests.
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest]
python-version: ['3.9', '3.10'] #, '3.11'] possible conflicts between numpy & astropy on 3.11.
astropy-version: ['<5.1', '<5.3', '<6.0']
desiutil-version: ['3.3.1', 'main']
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip wheel
python -m pip install pytest jinja2
python -m pip install numpy\<1.23
python -m pip install "git+https://github.com/desihub/desiutil.git@${{ matrix.desiutil-version }}#egg=desiutil"
python -m pip install "astropy${{ matrix.astropy-version }}"
- name: Run the test
run: |
pytest
coverage:
name: Code coverage test.
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest]
python-version: ['3.10']
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
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 -r requirements.txt
python -m pip install --upgrade numpy\<1.23
- name: Run the test with coverage
run: |
pytest --cov
- name: Coveralls
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
coveralls
docs:
name: Check Sphinx documentation.
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ['3.10']
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip wheel
python -m pip install Sphinx sphinx-toolbox
- name: Test the documentation
env:
PYTHONPATH: ${{ github.workspace }}/py
run: |
python -m desidatamodel.columns > doc/column_descriptions.rst
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.10']
desiutil-version: ['3.3.0']
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
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@${{ matrix.desiutil-version }}#egg=desiutil
- name: Generate api.rst
run: desi_api_file --api ./api.rst desidatamodel
- name: Compare generated api.rst to checked-in version
run: diff --ignore-space-change --ignore-blank-lines ./api.rst ./doc/api.rst
style:
# name: Check code style; allow failures.
name: Check code style.
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ['3.10']
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip wheel
python -m pip install pycodestyle
- name: Test the style
# This is equivalent to an allowed falure.
# continue-on-error: true
run: |
pycodestyle --count py/desidatamodel