-
Notifications
You must be signed in to change notification settings - Fork 4
132 lines (111 loc) · 3.59 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
name: CI
on:
# GitHub has started calling new repo's first branch "main" https://github.com/github/renaming
# The cookiecutter uses the "--initial-branch" flag when it runs git-init
push:
branches:
- "main"
pull_request:
branches:
- "main"
schedule:
# Automated tests:
# Scheduled workflows run on the latest commit on the default or base branch.
# (from https://help.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events-schedule)
- cron: "0 3 * * 1"
jobs:
test:
name: Test on {{ '${{ matrix.os }}' }}, Python {{ '${{ matrix.python-version }}' }}
runs-on: { { "${{ matrix.os }}" } }
strategy:
matrix:
os: [macOS-latest, ubuntu-latest, windows-latest]
python-version: [3.8, 3.9, "3.10"]
steps:
- uses: actions/checkout@v3
- name: Additional info about the build
shell: bash
run: |
uname -a
df -h
ulimit -a
# More info on options: https://github.com/marketplace/actions/provision-with-micromamba
- uses: mamba-org/provision-with-micromamba@main
with:
environment-file: devtools/conda-envs/test_env.yaml
environment-name: test
channels: conda-forge,defaults
extra-specs: |
python=${{ matrix.python-version }}
- name: Install package
# conda setup requires this special shell
shell: bash -l {0}
run: |
python -m pip install . --no-deps
micromamba list
- name: Run tests
# conda setup requires this special shell
shell: bash -l {0}
run: |
pytest -v --cov=kissim --cov-report=xml --color=yes kissim/tests/
- name: Run docs notebooks tests (on Linux only)
shell: bash -l {0}
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
PYTEST_ARGS="--nbval-lax --current-env --nbval-cell-timeout=900"
pytest $PYTEST_ARGS docs/tutorials/*.ipynb -vvv
else
echo "Do not run notebooks under $RUNNER_OS"
fi
- name: CodeCov
uses: codecov/codecov-action@v1
with:
file: ./coverage.xml
flags: unittests
name: codecov-${{ matrix.os }}-py${{ matrix.python-version }}
lint-format-package:
runs-on: ubuntu-latest
env:
CI_OS: ubuntu-latest
PACKAGE: "kissim"
PYVER: "3.8"
steps:
- name: Checkout the code
uses: actions/checkout@v3
- uses: mamba-org/provision-with-micromamba@main
with:
environment-file: devtools/conda-envs/test_env.yaml
environment-name: test
channels: conda-forge,defaults
extra-specs: |
python=3.8
- name: Install linter and formatter
shell: bash -l {0}
run: |
micromamba install -y pylint black
- name: Run pylint
shell: bash -l {0}
run: |
pylint $PACKAGE/
- name: Run black check
shell: bash -l {0}
if: always()
run: |
black --check -l 99 $PACKAGE/
lint-format-notebooks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v2
- name: Install notebook linter and formatter
run: |
python -m pip install black-nb
python -m pip install flake8-nb
- name: Run black-nb
shell: bash
run: |
black-nb -l 99 --check docs/tutorials/*ipynb
- name: Run flake8-nb
shell: bash
run: |
flake8-nb --config setup.cfg docs/tutorials/*ipynb