forked from WISDEM/WISDEM
-
Notifications
You must be signed in to change notification settings - Fork 0
144 lines (119 loc) · 4.33 KB
/
CI_WISDEM.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
name: CI_WISDEM
# We run CI on push commits and pull requests on all branches
on: [push, pull_request]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build_conda:
name: Conda Build-Test (${{ matrix.os }} Python ${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -el {0}
strategy:
fail-fast: False
matrix:
os: [ubuntu-latest, windows-latest] #macos-latest,
python-version: ["3.9", "3.10", "3.11"]
steps:
- name: checkout repository
uses: actions/checkout@v4
- name: Install conda/mamba
uses: conda-incubator/setup-miniconda@v2
# https://github.com/marketplace/actions/setup-miniconda
with:
# To use mamba, uncomment here, comment out the miniforge line
#mamba-version: "*"
miniforge-version: "latest"
auto-update-conda: true
python-version: ${{ matrix.python-version }}
environment-file: environment.yml
activate-environment: test
auto-activate-base: false
# Install dependencies of WEIS specific to ubuntu
- name: Add dependencies ubuntu specific
if: false == contains( matrix.os, 'windows')
run: |
conda install -y petsc4py gfortran
# Install dependencies of WISDEM specific to windows
- name: Add dependencies windows specific
if: contains( matrix.os, 'windows')
run: |
conda install -y m2w64-toolchain libpython
- name: Debug config
run: |
conda list
which -a gfortran
which pip
# Install WISDEM with setup
# Note: For some reason, pip --no-deps doesn't find conda packages and downloads everything
- name: Install WISDEM with setup
run: |
python setup.py install
# Install WISDEM with pip
#- name: Install WISDEM with pip for Unix
# if: false == contains( matrix.os, 'windows')
# run: |
# python setup.py install
# Install WISDEM with pip
#- name: Install WISDEM with pip for Windows
# if: contains( matrix.os, 'windows')
# run: |
# python setup.py install
# Debugging session
#- name: Setup tmate session
# uses: mxschmitt/action-tmate@v3
# Run all tests
- name: Run tests
if: false == contains( matrix.os, 'windows')
run: |
pytest -p no:warnings --disable-warnings --cov=wisdem
# Run limited test on WINDOWS
- name: Limited Windows test
if: contains( matrix.os, 'windows')
run: |
cd wisdem/test/test_gluecode
pytest -p no:warnings --disable-warnings test_g*
# Run coveralls
- name: Run coveralls
if: contains( matrix.os, 'ubuntu')
# This also works, https://github.com/AndreMiras/coveralls-python-action
#uses: AndreMiras/coveralls-python-action@develop
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
coveralls --service=github
build_pip:
name: Pip Build-Test (${{ matrix.os }} Python ${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -el {0}
strategy:
fail-fast: False
matrix:
os: [ubuntu-latest] #, windows-latest, macos-latest,
python-version: ["3.10"]
steps:
- name: Setup GNU Fortran
uses: awvwgk/setup-fortran@v1
#with:
# compiler: intel-classic
- name: checkout repository
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
id: cp
with:
python-version: ${{ matrix.python-version }}
update-environment: true
# Install WISDEM with setup
# Note: For some reason, pip --no-deps doesn't find conda packages and downloads everything
- name: Install WISDEM with setup
run: |
'${{ steps.cp.outputs.python-path }}' -m pip install --upgrade pip install pytest
'${{ steps.cp.outputs.python-path }}' -m pip install -vv .
# Run limited tests
- name: Limited test
run: |
cd wisdem/test/test_gluecode
pytest -p no:warnings --disable-warnings test_g*