Skip to content

CI

CI #251

Workflow file for this run

name: CI
on:
push:
pull_request:
schedule:
# Weekly Monday 4AM build
# * is a special character in YAML so you have to quote this string
- cron: '0 4 * * 1'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
# TODO: Uncomment when you ready to fix PEP 8 warnings.
# Maybe even merge into pep_and_audit job.
#pep8:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# with:
# fetch-depth: 0
# - name: Set up Python
# uses: actions/setup-python@v5
# with:
# python-version: '3.x'
# - name: Lint with flake8
# run: |
# python -m pip install --upgrade pip flake8
# flake8 lib/stsci/tools --count
pep_and_audit:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
# Make sure that packaging will work
- name: pep517 build
run: |
python -m pip install --upgrade setuptools build "twine>=3.3"
python -m build --sdist .
twine check --strict dist/*
- name: Security audit
run: |
python -m pip install --upgrade bandit
bandit -r . -c .bandit.yaml
initial_tests:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install and build
run: |
python -m pip install --upgrade pip wheel setuptools
python -m pip install -e .[test]
- name: Test without optional deps
run: pytest
dev_deps_tests:
runs-on: ubuntu-latest
needs: [pep_and_audit, initial_tests]
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install and build
run: |
python -m pip install --upgrade pip wheel setuptools
python -m pip install --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple numpy>=0.0.dev0 --pre --upgrade
python -m pip install --extra-index-url https://pypi.anaconda.org/liberfa/simple pyerfa>=0.0.dev0 --pre --upgrade
python -m pip install --extra-index-url https://pypi.anaconda.org/astropy/simple astropy>=0.0.dev0 --pre --upgrade
python -m pip install -e .[test]
- name: Test with dev deps
run: pytest
old_deps_tests:
runs-on: ubuntu-latest
needs: [pep_and_audit, initial_tests]
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.8'
- name: Install and build
run: |
python -m pip install --upgrade pip wheel setuptools
python -m pip install astropy==5.0.4
python -m pip install -e .[test]
- name: Test with old deps
run: pytest
link_check:
runs-on: ubuntu-latest
needs: [pep_and_audit, initial_tests]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install and build
run: |
python -m pip install --upgrade pip wheel setuptools
python -m pip install -e .[docs]
- name: Docs link check
run: |
cd doc
make linkcheck
shell: bash