Skip to content

changes

changes #186

# 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.8] # fitsio does not like Python < 3.7, astropy does not like Python < 3.8, might be too soon for 3.9.
astropy-version: ['==4.0.1.post1', '==5.0'] # everest & fuji versions
fitsio-version: ['==1.1.2', '==1.1.6'] # everest & fuji versions
numpy-version: ['<1.23'] # to keep asscalar, used by astropy
env:
DESIUTIL_VERSION: 3.2.3
# DESIMODEL: ${GITHUB_WORKSPACE}/desimodel
DESIMODEL_DATA: branches/test-0.18
# DESISIM: ${GITHUB_WORKSPACE}/desisim
DESISIM_TESTDATA_VERSION: main
# DESI_ROOT: ${DESISIM}/desi
# DESI_BASIS_TEMPLATES: ${DESI_ROOT}/spectro/templates/basis_templates/v3.2
SIMQSO_VERSION: v1.2.4
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 install git+https://github.com/imcgreer/simqso.git@${SIMQSO_VERSION}#egg=simqso
python -m pip install git+https://github.com/desihub/simqso.git@main#egg=simqso
python -m pip cache remove fitsio
python -m pip install --no-deps --force-reinstall --ignore-installed 'fitsio${{ matrix.fitsio-version }}'
- name: Verify Installation
run: pip list
- name: Install desimodel Data
run: |
mkdir -p ${GITHUB_WORKSPACE}/desimodel
svn export https://desi.lbl.gov/svn/code/desimodel/${DESIMODEL_DATA}/data ${GITHUB_WORKSPACE}/desimodel/data
- name: Install desisim Data
run: |
wget https://github.com/desihub/desisim-testdata/archive/${DESISIM_TESTDATA_VERSION}.zip
unzip ${DESISIM_TESTDATA_VERSION}.zip
- name: Run the test
run: PYTHONPATH=${GITHUB_WORKSPACE}/py DESIMODEL=${GITHUB_WORKSPACE}/desimodel DESISIM=${GITHUB_WORKSPACE} DESI_ROOT=${GITHUB_WORKSPACE}/desisim-testdata-${DESISIM_TESTDATA_VERSION}/desi DESI_BASIS_TEMPLATES=${GITHUB_WORKSPACE}/desisim-testdata-${DESISIM_TESTDATA_VERSION}/desi/spectro/templates/basis_templates/v3.2 pytest
coverage:
name: Test coverage
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest]
python-version: [3.8]
fitsio-version: ['==1.1.6'] # fuji version
numpy-version: ['<1.23'] # to keep asscalar, used by astropy
env:
DESIUTIL_VERSION: 3.2.3
# DESIMODEL: ${GITHUB_WORKSPACE}/desimodel
DESIMODEL_DATA: branches/test-0.17
# DESISIM: ${GITHUB_WORKSPACE}/desisim
DESISIM_TESTDATA_VERSION: main
# DESI_ROOT: ${DESISIM}/desi
# DESI_BASIS_TEMPLATES: ${DESI_ROOT}/spectro/templates/basis_templates/v3.2
SIMQSO_VERSION: v1.2.4
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 git+https://github.com/imcgreer/simqso.git@${SIMQSO_VERSION}#egg=simqso
python -m pip install git+https://github.com/desihub/simqso.git@main#egg=simqso
python -m pip cache remove fitsio
python -m pip install --no-deps --force-reinstall --ignore-installed 'fitsio${{ matrix.fitsio-version }}'
- name: Verify Installation
run: pip list
- name: Install desimodel Data
run: |
mkdir -p ${GITHUB_WORKSPACE}/desimodel
svn export https://desi.lbl.gov/svn/code/desimodel/${DESIMODEL_DATA}/data ${GITHUB_WORKSPACE}/desimodel/data
- name: Install desisim Data
run: |
wget https://github.com/desihub/desisim-testdata/archive/${DESISIM_TESTDATA_VERSION}.zip
unzip ${DESISIM_TESTDATA_VERSION}.zip
- name: Run the test
run: PYTHONPATH=${GITHUB_WORKSPACE}/py DESIMODEL=${GITHUB_WORKSPACE}/desimodel DESISIM=${GITHUB_WORKSPACE} DESI_ROOT=${GITHUB_WORKSPACE}/desisim-testdata-${DESISIM_TESTDATA_VERSION}/desi DESI_BASIS_TEMPLATES=${GITHUB_WORKSPACE}/desisim-testdata-${DESISIM_TESTDATA_VERSION}/desi/spectro/templates/basis_templates/v3.2 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.8]
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
- name: Test the documentation
run: sphinx-build -W --keep-going -b html doc doc/_build/html
style:
name: Style check
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: [3.8]
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/desisim