-
Notifications
You must be signed in to change notification settings - Fork 6
135 lines (129 loc) · 4.98 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
# 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:
linux-tests:
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']
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: conda-incubator/setup-miniconda@v3
with:
miniconda-version: 'latest'
auto-update-conda: true
python-version: ${{ matrix.python-version }}
environment-file: ${{ matrix.ymlfile }}
mamba-version: '*'
activate-environment: qa4sm_reader # todo: must match with name in environment.yml
auto-activate-base: false
- name: Print environment infos
shell: bash -l {0}
run: |
conda info -a
conda list
pip list
which pip
which python
- name: Export Environment
shell: bash -l {0}
run: |
mkdir -p artifacts
filename=env_py${{ matrix.python-version }}_${{ matrix.os }}.yml
conda env export --no-builds | grep -v "prefix" > 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
shell: bash -l {0}
run: |
pip install -e .
pytest
- name: Upload Coverage
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
windows-tests:
name: Build py${{ matrix.python-version }} @ ${{ matrix.os }} 🐍
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: ['3.10']
os: ['windows-latest']
ymlfile: ['environment.yml']
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: conda-incubator/setup-miniconda@v3
with:
miniconda-version: 'latest'
auto-update-conda: true
python-version: ${{ matrix.python-version }}
environment-file: ${{ matrix.ymlfile }}
activate-environment: qa4sm_reader # todo: must match with name in environment.yml
auto-activate-base: false
- name: Print environment infos
shell: cmd
run: |
conda info -a
conda list
pip list
where pip
where python
- name: Export Environment
shell: cmd
run: |
mkdir artifacts
set filename=env_py${{ matrix.python-version }}_${{ matrix.os }}.yml
conda env export --no-builds | findstr /v "prefix" > 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
shell: cmd
run: |
conda activate qa4sm_reader
pip install -e .
pytest
- name: Upload Coverage
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: [linux-tests, windows-tests]
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 }}