-
Notifications
You must be signed in to change notification settings - Fork 6
141 lines (121 loc) · 4.07 KB
/
tests.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
name: Tests
on:
pull_request:
push:
branches: [main, dev]
jobs:
test:
name: Python
runs-on: ${{ matrix.os }}
strategy:
matrix:
python: [ 3.8, 3.9, "3.10", "3.11" ]
os: [ macos-latest, ubuntu-latest ]
rust: [1.62.1]
defaults:
run:
shell: bash
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.11.0
with:
access_token: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
- name: Cache conda and dependancies
id: cache
uses: actions/cache@v3
with:
path: |
/usr/share/miniconda/envs/anaconda-client-env
~/osx-conda
~/.bashrc
key: ${{ runner.os }}-${{ matrix.python }}-conda-v1-${{ hashFiles('requirements/conda_minimal_deps.txt') }}
- name: Install Conda
uses: conda-incubator/setup-miniconda@v2
if: steps.cache.outputs.cache-hit != 'true'
with:
activate-environment: anaconda-client-env
python-version: ${{ matrix.python }}
channels: conda-forge
channel-priority: strict
auto-update-conda: true
use-only-tar-bz2: true
- name: Install conda deps
if: steps.cache.outputs.cache-hit != 'true'
shell: bash -l {0} #We need a login shell to get conda
run: |
conda install --yes --file=requirements/conda_minimal_deps_${{ runner.os }}.txt
conda install --yes --file=requirements/conda_minimal_deps.txt
- name: Fix OSX Cache Write #OSX Won't let the cache restore due to file perms
if: steps.cache.outputs.cache-hit != 'true' && matrix.os == 'macos-latest'
run: |
cp -r /usr/local/miniconda/envs/anaconda-client-env ~/osx-conda
- name: Fix OSX Cache Restore
if: steps.cache.outputs.cache-hit == 'true' && matrix.os == 'macos-latest'
run: |
mkdir -p /usr/local/miniconda/envs
sudo cp -r ~/osx-conda /usr/local/miniconda/envs/anaconda-client-env
- name: Init conda
shell: bash -l {0}
run: |
conda init bash
- name: Fix OSX profile
if: steps.cache.outputs.cache-hit != 'true' && matrix.os == 'macos-latest'
run: |
cp ~/.bash_profile ~/.bashrc
- name: Set rust version
run: |
source ~/.bashrc
conda activate anaconda-client-env
rustup override set ${{ matrix.rust }}
- name: rustc version
run: |
source ~/.bashrc
conda activate anaconda-client-env
rustc --version
which rustc
- name: Install cbindgen
uses: baptiste0928/cargo-install@v2
with:
crate: cbindgen
version: "=0.24.3"
- name: cbindgen version
run: |
source ~/.bashrc
conda activate anaconda-client-env
cbindgen --version
which cbindgen
- name: Build
run: |
source ~/.bashrc
conda activate anaconda-client-env
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_CPP_UNIT_TESTS=ON -DBUILD_PYTHON_UNIT_TESTS=ON -DDISABLE_LTO=ON
cmake --build build -j 4
- name: Run C++ tests
run: |
source ~/.bashrc
conda activate anaconda-client-env
cmake --build build -t test
- name: Manualy run setuptools_scm
run: |
source ~/.bashrc
conda activate anaconda-client-env
python -m setuptools_scm
- name: Run Python tests
# shell: bash -l {0}
run: |
# conda init bash
source ~/.bashrc
conda activate anaconda-client-env
python -m pytest -n 4 tests
python -m pytest -n 2 tests_with_cpp
- name: Build and run examples/plugin
run: |
source ~/.bashrc
conda activate anaconda-client-env
PYTHONPATH=. cmake examples/plugin
make
PYTHONPATH=. python examples/plugin/test_plugin.py