-
Notifications
You must be signed in to change notification settings - Fork 6
155 lines (136 loc) · 5.48 KB
/
test.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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# This workflow will install Python dependencies and run tests on
# Windows and Linux systems with a variety of Python versions
# For more information see:
# https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: tests
on:
push:
pull_request:
workflow_dispatch:
schedule: # only upstream, won't trigger on forks!
- cron: '0 0 * * *' # daily
jobs:
build:
name: Build py${{ matrix.python-version }} @ ${{ matrix.os }} 🐍
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10']
os: ['ubuntu-latest']
ymlfile: ['environment.yml']
include:
- os: 'windows-latest'
python-version: '3.10'
ymlfile: 'environment.yml'
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: mamba-org/setup-micromamba@v1
with:
micromamba-version: 'latest'
environment-file: ${{ matrix.ymlfile }}
micromamba-root-path: ~/micromamba
- name: Initialize micromamba environment (Linux)
if: runner.os == 'Linux'
shell: bash -l {0}
run: |
micromamba shell init -s bash -p ~/micromamba/envs/qa4sm_reader
micromamba create -y --name qa4sm_reader --file ${{ matrix.ymlfile }}
echo "source ~/micromamba/etc/profile.d/micromamba.sh" >> ~/.bashrc
- name: Initialize micromamba environment (Windows)
if: runner.os == 'Windows'
shell: cmd
run: |
micromamba shell init -s cmd -p %USERPROFILE%\micromamba\envs\qa4sm_reader
micromamba create -y --name qa4sm_reader --file %USERPROFILE%\micromamba\envs\qa4sm_reader\${{ matrix.ymlfile }}
- name: Activate environment (Linux)
if: runner.os == 'Linux'
shell: bash -l {0}
run: |
source ~/micromamba/etc/profile.d/micromamba.sh
micromamba activate qa4sm_reader
- name: Activate environment (Windows)
if: runner.os == 'Windows'
shell: cmd
run: |
call %USERPROFILE%\micromamba\etc\profile.d\micromamba.cmd
micromamba activate qa4sm_reader
- name: Print environment infos (Linux)
if: runner.os == 'Linux'
shell: bash -l {0}
run: |
micromamba info
micromamba list
pip list
which pip
which python
- name: Print environment infos (Windows)
if: runner.os == 'Windows'
shell: cmd
run: |
micromamba info
micromamba list
pip list
where pip
where python
- name: Export Environment (Linux)
if: runner.os == 'Linux'
shell: bash -l {0}
run: |
mkdir -p artifacts
filename=env_py${{ matrix.python-version }}_${{ matrix.os }}.yml
micromamba env export --name qa4sm_reader > artifacts/$filename
- name: Export Environment (Windows)
if: runner.os == 'Windows'
shell: cmd
run: |
mkdir artifacts
set filename=env_py${{ matrix.python-version }}_${{ matrix.os }}.yml
micromamba env export --name qa4sm_reader > artifacts\%filename%
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: Artifacts-py${{ matrix.python-version }}-${{ matrix.os }}
path: artifacts/*
- name: Install package and test (Linux)
if: runner.os == 'Linux'
shell: bash -l {0}
run: |
pip install -e .
pytest
- name: Install package and test (Windows)
if: runner.os == 'Windows'
shell: cmd
run: |
pip install -e .
pytest
- name: Upload Coverage (Linux)
if: runner.os == 'Linux'
shell: bash -l {0}
run: |
pip install coveralls && coveralls --service=github
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_FLAG_NAME: ${{ matrix.python-version }}
COVERALLS_PARALLEL: true
- name: Upload Coverage (Windows)
if: runner.os == 'Windows'
shell: cmd
run: |
pip install coveralls && coveralls --service=github
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_FLAG_NAME: ${{ matrix.python-version }}
COVERALLS_PARALLEL: true
coveralls:
name: Submit Coveralls 👚
needs: build
runs-on: ubuntu-latest
container: python:3-slim
steps:
- name: Finished
run: |
pip3 install --upgrade coveralls && coveralls --service=github --finish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}