-
Notifications
You must be signed in to change notification settings - Fork 22
147 lines (146 loc) · 4.1 KB
/
ci.yaml
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
name: CI
'on':
pull_request: null
workflow_dispatch: null
concurrency:
group: '${{ github.workflow }}-${{ github.ref }}'
cancel-in-progress: true
jobs:
detect-ci-trigger:
name: detect ci trigger
runs-on: ubuntu-latest
if: github.event_name == 'push' || github.event_name == 'pull_request'
outputs:
triggered: '${{ steps.detect-trigger.outputs.trigger-found }}'
steps:
- uses: actions/[email protected]
with:
fetch-depth: 2
- uses: xarray-contrib/[email protected]
id: detect-trigger
with:
keyword: '[skip-ci]'
test:
name: pytest
runs-on: ubuntu-latest
needs: detect-ci-trigger
if: needs.detect-ci-trigger.outputs.triggered == 'false'
defaults:
run:
shell: 'bash -l {0}'
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0
- name: Set up conda
uses: conda-incubator/[email protected]
with:
auto-update-conda: false
channels: conda-forge
miniforge-variant: Mambaforge
activate-environment: bitinfo-tests
python-version: '3.11'
- name: Set up conda environment
run: |
mamba env update -f tests/environment.yml
- name: Conda info
run: conda info
- name: Conda list
run: conda list
- name: install xbitinfo
run: |
pip install .
- name: Run tests
run: pytest
doctest:
name: doctests
runs-on: ubuntu-latest
defaults:
run:
shell: 'bash -l {0}'
steps:
- uses: actions/[email protected]
- uses: conda-incubator/[email protected]
with:
channels: conda-forge
miniforge-variant: Mambaforge
activate-environment: bitinfo-tests
auto-update-conda: false
python-version: '3.11'
- name: Install conda dependencies
run: |
mamba env update -f tests/environment.yml
- name: Install xbitinfo
run: |
python -m pip install -e .
- name: Conda info
run: conda info
- name: Conda list
run: conda list
- name: Run doctests
run: |
python -m pytest --doctest-modules xbitinfo --ignore xbitinfo/tests
test_notebooks:
name: notebooks
runs-on: ubuntu-latest
needs: detect-ci-trigger
if: needs.detect-ci-trigger.outputs.triggered == 'false'
defaults:
run:
shell: 'bash -l {0}'
steps:
- uses: actions/[email protected]
- name: Set up conda
uses: conda-incubator/[email protected]
with:
auto-update-conda: false
channels: conda-forge
miniforge-variant: Mambaforge
activate-environment: bitinfo-docs
python-version: '3.11'
- name: Set up conda environment
run: |
mamba env update -f docs/environment.yml
- name: Remove julia (issue #212)
run: |
conda remove julia
- name: Conda info
run: conda info
- name: Conda list
run: conda list
- name: install xbitinfo
run: |
pip install . --upgrade pip
- name: Test notebooks
run: >
python -m ipykernel install --user --name bitinfo-docs
jupyter nbconvert --to html --execute docs/*.ipynb
--ExecutePreprocessor.kernel_name=bitinfo-docs
install:
name: 'install xbitinfo, ${{ matrix.os }}'
runs-on: '${{ matrix.os }}'
needs: detect-ci-trigger
if: needs.detect-ci-trigger.outputs.triggered == 'false'
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0
- name: Setup python
uses: actions/[email protected]
with:
python-version: '3.11'
- name: Set up Julia
uses: julia-actions/[email protected]
with:
version: 1.7.1
- name: Install dependencies
run: |
pip install .[complete]
python -c "import xbitinfo"