forked from juliotux/astropop
-
Notifications
You must be signed in to change notification settings - Fork 3
146 lines (137 loc) · 4.77 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
name: CI
on:
push:
branches:
- main
- 'v*'
tags:
- '*'
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
tests:
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: ~/.astropy
envs: |
- linux: py38-test-olddeps-online
cache-key: ${{ github.ref }}-py38lin-astropycache
- linux: py39-test-online
cache-key: ${{ github.ref }}-py39lin-astropycache
- linux: py310-test-online
cache-key: ${{ github.ref }}-py310lin-astropycache
- linux: py311-test-online
cache-key: ${{ github.ref }}-py311lin-astropycache
- linux: py312-test-online
cache-key: ${{ github.ref }}-py312lin-astropycache
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
allowed_failures:
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: ~/.astropy
cache-key: ${{ github.ref }}-${{ matrix.toxenv }}-astropycache
libraries: |
apt:
- tzdata
- libopenblas-base
- libopenblas-dev
envs: |
- name: (Allowed Failure) Python 3.12 with dev version of deps
linux: py313-test-devdeps-online
python-version: 3.13-dev
- name: (Allowed Failure) Python 3.13 with dev version of deps
linux: py313-test-devdeps-online
python-version: 3.12
- macos: py312-test-online
cache-key: ${{ github.ref }}-py312mac-astropycache
- windows: py312-test-online
cache-key: ${{ github.ref }}-py312win-astropycache
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