-
Notifications
You must be signed in to change notification settings - Fork 18
141 lines (123 loc) · 3.64 KB
/
ci.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
name: CI
# by not building all branches on push, we avoid the duplicated builds in PRs
on:
push:
# TODO
# Remove comment: just a test to force CI on push
# branches:
# - main
# tags:
# - '**'
pull_request:
env:
NUMBA_NUM_THREADS: 1
MPLBACKEND: Agg
PYTEST_ADDOPTS: --color=yes
jobs:
lint:
runs-on: ubuntu-latest
name: Lint
steps:
- name: Check out source repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python environment
uses: actions/setup-python@v5
with:
python-version: "3.9"
- name: Runs pre-commit hooks
uses: pre-commit/[email protected]
with:
extra_args: --files $(git diff origin/main --name-only)
tests:
runs-on: ${{ matrix.os }}
needs: lint
strategy:
matrix:
include:
- os: "ubuntu-latest"
python-version: "3.9"
ctapipe-version: "v0.19.3"
install-method: "mamba"
- os: "ubuntu-latest"
python-version: "3.10"
ctapipe-version: "v0.19.3"
install-method: "mamba"
- os: "ubuntu-latest"
python-version: "3.10"
ctapipe-version: "v0.19.3"
install-method: "pip"
- os: "ubuntu-latest"
python-version: "3.11"
ctapipe-version: "v0.19.3"
install-method: "mamba"
- os: "ubuntu-latest"
python-version: "3.11"
ctapipe-version: "v0.19.3"
install-method: "pip"
# macos 14 image is arm64 based
- os: "macos-14"
python-version: "3.11"
ctapipe-version: "v0.19.3"
install-method: "mamba"
defaults:
run:
# We need login shells (-l) for micromamba to work.
shell: bash -leo pipefail {0}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set Python version
env:
PYTHON_VERSION: ${{ matrix.python-version }}
run: |
sed -i -e "s/- python=.*/- python=$PYTHON_VERSION/g" environment.yml
- name: Mamba setup
if: matrix.install-method == 'mamba'
uses: mamba-org/setup-micromamba@v2
with:
environment-name: "ci"
environment-file: environment.yml
- name: Python setup
if: matrix.install-method == 'pip'
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Install dependencies
env:
CTAPIPE_VERSION: ${{ matrix.ctapipe-version }}
run: |
python --version
echo "Installing additional pip packages"
# we install ctapipe using pip to be able to select any commit, e.g. the current main
pip install \
"git+https://github.com/cta-observatory/ctapipe@$CTAPIPE_VERSION"
echo "pip install -e ."
pip install -e .[test]
- name: Tests
run: |
pytest -n auto --dist loadscope --cov=nectarchain --cov-report=xml
- uses: codecov/codecov-action@v4
docs:
needs: lint
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Install doc dependencies
run: |
pip install -e .[docs]
# git describe --tags
python -c 'import nectarchain; print(nectarchain.__version__)'
- name: Build docs
run: make -C docs html