-
Notifications
You must be signed in to change notification settings - Fork 21
138 lines (128 loc) · 3.68 KB
/
ci_workflows.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
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