forked from juliotux/astropop
-
Notifications
You must be signed in to change notification settings - Fork 3
163 lines (157 loc) · 5.26 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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
name: CI
on:
push:
branches:
- main
- 'v*'
tags:
- '*'
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
tests:
name: ${{ matrix.toxenv }}
runs-on: ubuntu-latest
if: "!(contains(github.event.head_commit.message, '[skip ci]') || contains(github.event.head_commit.message, '[ci skip]'))"
strategy:
fail-fast: false
matrix:
include:
- python: '3.8'
toxenv: py38-test-online
- python: '3.9'
toxenv: py39-test-online
- python: '3.10'
toxenv: py310-test-online
- python: '3.11'
toxenv: py311-test-online
- python: '3.12'
toxenv: py312-test-online
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
cache: pip
cache-dependency-path: '**/pyproject.toml'
- name: Install base dependencies
run: |
python -m pip install --upgrade --quiet pip setuptools tox
python -c "import sys; print(f'Python {sys.version}')"
python -c "import pip; print(f'pip {pip.__version__}')"
python -c "import setuptools; print(f'setuptools {setuptools.__version__}')"
python -c "import tox; print(f'tox {tox.__version__}')"
- name: Install graphviz dependency
if: "endsWith(matrix.toxenv, 'build_docs')"
run: sudo apt-get -y install graphviz
- name: Install build dependencies
if: "contains(matrix.toxenv, 'devdeps')"
run: |
sudo apt-get -y install libopenblas-base libopenblas-dev
- name: Cache tox environments
uses: actions/cache@v3
with:
path: .tox
# setup.cfg and pyproject.toml have versioning info that would
# impact the tox environment.
key: ${{ github.ref }}-${{ matrix.toxenv }}-tox-${{ hashFiles('pyproject.toml') }}
- name: Cache astropy cache
uses: actions/cache@v3
with:
path: ~/.astropy
# setup.cfg and pyproject.toml have versioning info that would
# impact the tox environment.
key: ${{ github.ref }}-${{ matrix.toxenv }}-astropycache
- name: Run tests
run: tox -v -e ${{ matrix.toxenv }}
build_docs:
uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@v1
if: "!(contains(github.event.head_commit.message, '[skip ci]') || contains(github.event.head_commit.message, '[ci skip]'))"
with:
cache-path: .tox
cache-key: build_docs-astropy
libraries: |
apt:
- pandoc
- graphviz
envs: |
- linux: build_docs
coverage:
name: "Conda/Coverage/Astrometry.net"
runs-on: ubuntu-latest
if: "!(contains(github.event.head_commit.message, '[skip ci]') || contains(github.event.head_commit.message, '[ci skip]'))"
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Get Date
id: get-date
run: echo "today=$(/bin/date -u '+%Y%m%d')" >> $GITHUB_OUTPUT
shell: bash
- name: Cache conda
uses: actions/cache@v3
with:
path: ~/conda_pkgs_dir
key:
${{ runner.os }}-${{ runner.arch }}-conda-${{ hashFiles('pyproject.toml') }}
- name: Cache env
uses: actions/cache@v3
with:
path: ${{ env.CONDA }}/envs
key:
${{ github.ref }}-${{ runner.os }}-${{ runner.arch }}-${{ steps.get-date.outputs.today }}-conda-envs-${{ hashFiles('pyproject.toml') }}
- uses: conda-incubator/setup-miniconda@v2
with:
miniforge-variant: Mambaforge
miniforge-version: latest
activate-environment: astropop
use-mamba: true
mamba-version: "*"
channels: conda-forge,defaults
python-version: "3.12"
- name: Cache astropy cache
uses: actions/cache@v3
with:
path: ~/.astropy
# setup.cfg and pyproject.toml have versioning info that would
# impact the tox environment.
key: ${{ github.ref }}-conda-astropy
- name: Install dependencies
shell: bash -l {0}
run: |
mamba install -y -q pytest astrometry \
astropy scipy numpy matplotlib \
scikit-image scikit-learn \
sep astroquery
pip install astroscrappy
pip install coveralls .[test]
- name: Install astropop
shell: bash -l {0}
run: pip install -U .[all]
- name: Print versions
shell: bash -l {0}
run: |
conda info
conda list
- name: Run Pytest and generate coverage
shell: bash -l {0}
run: |
pytest --pyargs ./tests ./docs --remote-data --cov astropop --cov-config=./pyproject.toml
coverage xml -o ./coverage.xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
file: ./coverage.xml
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage to Coveralls
shell: bash -l {0}
if: github.event_name != 'pull_request'
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: coveralls