Skip to content

Commit 163dd26

Browse files
committed
Update CI
Add Python dependencies, add build tests using PMIx v6.0 Signed-off-by: Ralph Castain <[email protected]>
1 parent 68d0f02 commit 163dd26

File tree

4 files changed

+222
-11
lines changed

4 files changed

+222
-11
lines changed

.github/workflows/build-ompi.yaml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,16 @@ jobs:
2626

2727
- name: Tweak OMPI
2828
run: |
29-
rm -r 3rd-party/prrte
29+
rm -r 3rd-party/prrte 3rd-party/openpmix
3030
31-
- name: Update PMIx
32-
run: |
33-
cd 3rd-party/openpmix
34-
git checkout master
35-
git pull
31+
- name: Git clone PMIx
32+
uses: actions/checkout@v4
33+
with:
34+
submodules: recursive
35+
repository: openpmix/openpmix
36+
ref: v6.0
37+
path: 3rd-party/openpmix
38+
clean: false
3639

3740
- name: Git clone PRRTE
3841
uses: actions/checkout@v4

.github/workflows/builds-v6.yaml

Lines changed: 208 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,208 @@
1+
name: Build tests with PMIx v6
2+
3+
on: [pull_request]
4+
5+
jobs:
6+
macos:
7+
runs-on: macos-latest
8+
strategy:
9+
matrix:
10+
path: ['non-vpath', 'vpath']
11+
sphinx: ['no-sphinx', 'sphinx']
12+
steps:
13+
- name: Install dependencies
14+
run: brew install libevent hwloc autoconf automake libtool
15+
- name: Git clone OpenPMIx
16+
uses: actions/checkout@v3
17+
with:
18+
submodules: recursive
19+
repository: openpmix/openpmix
20+
path: openpmix/v6
21+
ref: v6.0
22+
- name: Build OpenPMIx
23+
run: |
24+
cd openpmix/v6
25+
# Homebrew doesn't install Libevent's (or libev's) header or
26+
# library files into a default search location. Shrug. So
27+
# use pkg-config to get the location and explicitly pass it to
28+
# configure.
29+
libevent_cppflags=$(pkg-config libevent --cflags)
30+
libevent_ldflags=$(pkg-config libevent --libs | perl -pe 's/^.*(-L[^ ]+).*$/\1/')
31+
./autogen.pl
32+
./configure --prefix=$RUNNER_TEMP/pmixinstall \
33+
CPPFLAGS=$libevent_cppflags \
34+
LDFLAGS=$libevent_ldflags
35+
make -j
36+
make install
37+
- name: Git clone PRRTE
38+
uses: actions/checkout@v3
39+
with:
40+
submodules: recursive
41+
clean: false
42+
- name: Build PRRTE
43+
run: |
44+
./autogen.pl
45+
46+
sphinx=
47+
if test "${{ matrix.sphinx }}" = sphinx; then
48+
# The macos Github Action environment gets angry at us if
49+
# we try to pip install into the global environment. So
50+
# make a virtual environment and install sphinx into that.
51+
python -m venv venv
52+
. ./venv/bin/activate
53+
pip3 install -r docs/requirements.txt
54+
sphinx=--enable-sphinx
55+
fi
56+
57+
c=./configure
58+
if test "${{ matrix.path }}" = vpath; then
59+
mkdir build
60+
cd build
61+
c=../configure
62+
fi
63+
64+
# Homebrew doesn't install Libevent's (or libev's) header or
65+
# library files into a default search location. Shrug. So
66+
# use pkg-config to get the location and explicitly pass it to
67+
# configure.
68+
libevent_cppflags=$(pkg-config libevent --cflags)
69+
libevent_ldflags=$(pkg-config libevent --libs | perl -pe 's/^.*(-L[^ ]+).*$/\1/')
70+
71+
$c --prefix=$RUNNER_TEMP/prteinstall --with-pmix=$RUNNER_TEMP/pmixinstall $sphinx \
72+
--enable-devel-check \
73+
--enable-testbuild-launchers \
74+
CPPFLAGS=$libevent_cppflags \
75+
LDFLAGS=$libevent_ldflags
76+
make -j
77+
make install
78+
make uninstall
79+
80+
ubuntu:
81+
runs-on: ubuntu-latest
82+
strategy:
83+
matrix:
84+
path: ['non-vpath', 'vpath']
85+
sphinx: ['no-sphinx', 'sphinx']
86+
steps:
87+
- name: Install dependencies
88+
run: |
89+
sudo apt-get update
90+
sudo apt-get install -y --no-install-recommends software-properties-common libhwloc-dev libevent-dev python3 python3-pip
91+
- name: Git clone OpenPMIx
92+
uses: actions/checkout@v3
93+
with:
94+
submodules: recursive
95+
repository: openpmix/openpmix
96+
path: openpmix/v6
97+
ref: v6.0
98+
- name: Build OpenPMIx
99+
run: |
100+
cd openpmix/v6
101+
./autogen.pl
102+
./configure --prefix=$RUNNER_TEMP/pmixinstall
103+
make -j
104+
make install
105+
- name: Git clone PRRTE
106+
uses: actions/checkout@v3
107+
with:
108+
submodules: recursive
109+
clean: false
110+
- name: Build PRRTE
111+
run: |
112+
./autogen.pl
113+
114+
sphinx=
115+
if test "${{ matrix.sphinx }}" = sphinx; then
116+
pip3 install -r docs/requirements.txt
117+
sphinx=--enable-sphinx
118+
fi
119+
120+
c=./configure
121+
if test "${{ matrix.path }}" = vpath; then
122+
mkdir build
123+
cd build
124+
c=../configure
125+
fi
126+
127+
$c --prefix=$RUNNER_TEMP/prteinstall --with-pmix=$RUNNER_TEMP/pmixinstall $sphinx \
128+
--enable-devel-check \
129+
--enable-testbuild-launchers
130+
make -j
131+
make install
132+
make uninstall
133+
134+
ubuntuClang:
135+
runs-on: ubuntu-latest
136+
steps:
137+
- name: Install dependencies
138+
run: |
139+
sudo apt-get update
140+
sudo apt-get install -y --no-install-recommends software-properties-common libhwloc-dev libevent-dev clang python3 python3-pip
141+
- name: Git clone OpenPMIx
142+
uses: actions/checkout@v3
143+
with:
144+
submodules: recursive
145+
repository: openpmix/openpmix
146+
path: openpmix/v6
147+
ref: v6.0
148+
- name: Build OpenPMIx
149+
run: |
150+
cd openpmix/v6
151+
./autogen.pl
152+
CC=clang ./configure --prefix=$RUNNER_TEMP/pmixinstall
153+
make -j
154+
make install
155+
- name: Git clone PRRTE
156+
uses: actions/checkout@v3
157+
with:
158+
submodules: recursive
159+
clean: false
160+
- name: Build PRRTE
161+
run: |
162+
./autogen.pl
163+
164+
pip3 install -r docs/requirements.txt
165+
sphinx=--enable-sphinx
166+
167+
c=./configure
168+
CC=clang $c --prefix=$RUNNER_TEMP/prteinstall --with-pmix=$RUNNER_TEMP/pmixinstall $sphinx \
169+
--enable-devel-check \
170+
--enable-testbuild-launchers
171+
make -j
172+
make install
173+
make uninstall
174+
175+
distcheck:
176+
runs-on: ubuntu-latest
177+
steps:
178+
- name: Install dependencies
179+
run: |
180+
sudo apt-get update
181+
sudo apt-get install -y --no-install-recommends software-properties-common libhwloc-dev libevent-dev python3 python3-pip
182+
- name: Git clone OpenPMIx
183+
uses: actions/checkout@v3
184+
with:
185+
submodules: recursive
186+
repository: openpmix/openpmix
187+
path: openpmix/v6
188+
ref: v6.0
189+
- name: Build OpenPMIx
190+
run: |
191+
cd openpmix/v6
192+
./autogen.pl
193+
./configure --prefix=$RUNNER_TEMP/pmixinstall
194+
make -j
195+
make install
196+
- name: Git clone PRRTE
197+
uses: actions/checkout@v3
198+
with:
199+
submodules: recursive
200+
clean: false
201+
- name: Distcheck
202+
run: |
203+
pip install -r docs/requirements.txt
204+
./autogen.pl
205+
./configure --prefix=$RUNNER_TEMP/prteinstall --with-pmix=$RUNNER_TEMP/pmixinstall --enable-sphinx \
206+
--enable-devel-check \
207+
--enable-testbuild-launchers
208+
make distcheck AM_DISTCHECK_MAKEFLAGS=-j AM_DISTCHECK_CONFIGURE_FLAGS="--with-pmix=$RUNNER_TEMP/pmixinstall"

.github/workflows/builds.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ jobs:
8787
- name: Install dependencies
8888
run: |
8989
sudo apt-get update
90-
sudo apt-get install -y --no-install-recommends software-properties-common libhwloc-dev libevent-dev
90+
sudo apt-get install -y --no-install-recommends software-properties-common libhwloc-dev libevent-dev python3 python3-pip
9191
- name: Git clone OpenPMIx
9292
uses: actions/checkout@v3
9393
with:
@@ -137,7 +137,7 @@ jobs:
137137
- name: Install dependencies
138138
run: |
139139
sudo apt-get update
140-
sudo apt-get install -y --no-install-recommends software-properties-common libhwloc-dev libevent-dev clang
140+
sudo apt-get install -y --no-install-recommends software-properties-common libhwloc-dev libevent-dev clang python3 python3-pip
141141
- name: Git clone OpenPMIx
142142
uses: actions/checkout@v3
143143
with:

.github/workflows/prte_mpi4py.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ jobs:
3636
with:
3737
submodules: recursive
3838
repository: openpmix/openpmix
39-
path: openpmix/master
40-
ref: master
39+
path: openpmix/v6
40+
ref: v6.0
4141

4242
- name: Build OpenPMIx
4343
run: |
44-
cd openpmix/master
44+
cd openpmix/v6
4545
./autogen.pl
4646
./configure --prefix=$RUNNER_TEMP/pmixinstall
4747
make -j $(nproc)

0 commit comments

Comments
 (0)