-
Notifications
You must be signed in to change notification settings - Fork 8
137 lines (113 loc) · 4.87 KB
/
CI_pyHAMS.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
name: CI_pyHAMS
# 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_pip:
name: Pip Build (${{ matrix.os }}) - ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -l {0}
strategy:
fail-fast: false #true
matrix:
os: ["ubuntu-latest", "macOS-latest"] #, "windows-latest"]
python-version: ["3.9", "3.10", "3.11"]
steps:
- name: Setup GNU Fortran
# if: false == contains( matrix.os, 'windows')
uses: awvwgk/setup-fortran@v1 #modflowpy/install-intelfortran-action@v1 #
- 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
- name: Windows openblas
if: contains( matrix.os, 'windows')
run: |
#vcpkg install openblas
#pacman -S mingw-w64-x86_64-openblas64
'${{ steps.cp.outputs.python-path }}' -m pip install pylib-openblas
- name: Mac openblas
if: contains( matrix.os, 'mac')
run: |
#export PKG_CONFIG_PATH="/usr/local/opt/openblas/lib/pkgconfig:$PKG_CONFIG_PATH"
sudo ln -s /usr/local/opt/openblas/lib/libopenblas* /usr/local/lib/
- name: Linux openblas
if: contains( matrix.os, 'ubuntu')
run: |
sudo apt-get install libopenblas-dev
#- name: Setup tmate session
# if: contains( matrix.os, 'windows')
# uses: mxschmitt/action-tmate@v3
- name: Pip Install pyHAMS
env:
MESON_ARGS: -Dpython_target=${{ steps.cp.outputs.python-path }}
run: |
'${{ steps.cp.outputs.python-path }}' -m pip install -vv -e .
- name: Test run
run: |
cd test
'${{ steps.cp.outputs.python-path }}' test_cylinder.py
build_conda:
name: Conda Build (${{ matrix.os }}) - ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -el {0}
strategy:
fail-fast: false #true
matrix:
os: ["ubuntu-latest", "macOS-latest", "windows-latest"]
python-version: ["3.9", "3.10", "3.11"]
steps:
- name: checkout repository
uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v2
# https://github.com/marketplace/actions/setup-miniconda
with:
#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 WISDEM specific to windows
# NOTE: If you install m2w64-toolchain, it includes m2w64-pkgconfig which supercedes the conda one
# The m2w64 pkgconfig fails to find openblas and the install fails
# By only includes these compiler packages, the build succeeds
- name: Add dependencies windows specific
if: contains( matrix.os, 'windows')
run: |
conda install -y m2w64-binutils m2w64-gcc m2w64-gcc-libgfortran m2w64-gcc-fortran libpython
# Install dependencies of WISDEM specific to windows
- name: Add dependencies mac specific
if: contains( matrix.os, 'mac')
run: |
conda install -y compilers
gfortran --version
# Install
- name: Debug
run: |
conda list
printenv
#- name: Setup tmate session
# uses: mxschmitt/action-tmate@v3
# with:
# detached: true
# if: contains( matrix.os, 'windows')
# Install
- name: Conda Install pyHAMS
env:
MESON_ARGS: ""
run: |
python setup.py develop
- name: Test run
run: |
cd test
python test_cylinder.py