-
Notifications
You must be signed in to change notification settings - Fork 77
131 lines (107 loc) · 3.32 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
name: CI
on:
push:
branches:
- main
tags:
- '**'
pull_request:
env:
NUMBA_NUM_THREADS: 1
MPLBACKEND: Agg
PYTEST_ADDOPTS: --color=yes
jobs:
pyflakes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: pyflakes
run: |
pip install pyflakes
pyflakes lstchain
tests:
needs: pyflakes
runs-on: ubuntu-latest
defaults:
run:
shell: bash -leo pipefail {0}
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11"]
ctapipe-version: ["v0.19.2"]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Prepare mamba installation
env:
PYTHON_VERSION: ${{ matrix.python-version }}
run: |
# setup correct python version
sed -i -e "s/- python=.*/- python=$PYTHON_VERSION/g" environment.yml
- name: Mamba setup
uses: mamba-org/setup-micromamba@v1
with:
environment-file: environment.yml
cache-downloads: true
- name: Install dependencies
env:
PYTHON_VERSION: ${{ matrix.python-version }}
CTAPIPE_VERSION: ${{ matrix.ctapipe-version }}
run: |
python --version
echo "Installing additional pip packages"
echo "pip install -e ."
pip install -e .
pip install pytest-cov 'coverage!=6.3.0' pytest-xdist
# we install ctapipe using pip to be able to select any commit, e.g. the current master
pip install "git+https://github.com/cta-observatory/ctapipe@$CTAPIPE_VERSION"
which pip
pip freeze
- name: Download test data
env:
TEST_DATA_USER: ${{ secrets.test_data_user }}
TEST_DATA_PASSWORD: ${{ secrets.test_data_password }}
run: |
./download_test_data.sh
- name: Tests
run: |
pytest -n auto --dist loadscope --cov --cov-report=xml -m 'private_data or not private_data' lstchain
- uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
docs:
needs: pyflakes
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: |
sudo apt update --yes && sudo apt install --yes git build-essential pandoc graphviz
pip install -U pip setuptools wheel
pip install -e .[docs]
git describe --tags
python -c 'import lstchain; print(lstchain.__version__)'
- name: Build docs
run: cd docs && make html SPHINXOPTS="-W --keep-going -n --color -j auto"
- name: Deploy to gihub pages
# only run on push to main
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
uses: JamesIves/github-pages-deploy-action@v4
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages
FOLDER: docs/_build/html
CLEAN: true
SINGLE_COMMIT: true