Skip to content

Protect against LTO optimizer #17

Protect against LTO optimizer

Protect against LTO optimizer #17

Workflow file for this run

name: Build tests
on: [pull_request]
jobs:
macos:
runs-on: macos-latest
strategy:
matrix:
path: ['non-vpath', 'vpath']
sphinx: ['no-sphinx', 'sphinx']
steps:
- name: Install dependencies
run: brew install libevent hwloc autoconf automake libtool
- name: Git clone OpenPMIx
uses: actions/checkout@v3
with:
submodules: recursive
repository: openpmix/openpmix
path: openpmix/master
ref: master
- name: Build OpenPMIx
run: |
cd openpmix/master
# Homebrew doesn't install Libevent's (or libev's) header or
# library files into a default search location. Shrug. So
# use pkg-config to get the location and explicitly pass it to
# configure.
libevent_cppflags=$(pkg-config libevent --cflags)
libevent_ldflags=$(pkg-config libevent --libs | perl -pe 's/^.*(-L[^ ]+).*$/\1/')
./autogen.pl
./configure --prefix=$RUNNER_TEMP/pmixinstall \
CPPFLAGS=$libevent_cppflags \
LDFLAGS=$libevent_ldflags
make -j
make install
- name: Git clone PRRTE
uses: actions/checkout@v3
with:
submodules: recursive
clean: false
- name: Build PRRTE
run: |
./autogen.pl
sphinx=
if test "${{ matrix.sphinx }}" = sphinx; then
# The macos Github Action environment gets angry at us if
# we try to pip install into the global environment. So
# make a virtual environment and install sphinx into that.
python -m venv venv
. ./venv/bin/activate
pip3 install -r docs/requirements.txt
sphinx=--enable-sphinx
fi
c=./configure
if test "${{ matrix.path }}" = vpath; then
mkdir build
cd build
c=../configure
fi
# Homebrew doesn't install Libevent's (or libev's) header or
# library files into a default search location. Shrug. So
# use pkg-config to get the location and explicitly pass it to
# configure.
libevent_cppflags=$(pkg-config libevent --cflags)
libevent_ldflags=$(pkg-config libevent --libs | perl -pe 's/^.*(-L[^ ]+).*$/\1/')
$c --prefix=$RUNNER_TEMP/prteinstall --with-pmix=$RUNNER_TEMP/pmixinstall $sphinx \
CPPFLAGS=$libevent_cppflags \
LDFLAGS=$libevent_ldflags
make -j
make install
make uninstall
ubuntu:
runs-on: ubuntu-latest
strategy:
matrix:
path: ['non-vpath', 'vpath']
sphinx: ['no-sphinx', 'sphinx']
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends software-properties-common libhwloc-dev libevent-dev
- name: Git clone OpenPMIx
uses: actions/checkout@v3
with:
submodules: recursive
repository: openpmix/openpmix
path: openpmix/master
ref: master
- name: Build OpenPMIx
run: |
cd openpmix/master
./autogen.pl
./configure --prefix=$RUNNER_TEMP/pmixinstall
make -j
make install
- name: Git clone PRRTE
uses: actions/checkout@v3
with:
submodules: recursive
clean: false
- name: Build PRRTE
run: |
./autogen.pl
sphinx=
if test "${{ matrix.sphinx }}" = sphinx; then
pip3 install -r docs/requirements.txt
sphinx=--enable-sphinx
fi
c=./configure
if test "${{ matrix.path }}" = vpath; then
mkdir build
cd build
c=../configure
fi
$c --prefix=$RUNNER_TEMP/prteinstall --with-pmix=$RUNNER_TEMP/pmixinstall $sphinx
make -j
make install
make uninstall
distcheck:
runs-on: ubuntu-latest
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends software-properties-common libhwloc-dev libevent-dev python3 python3-pip
- name: Git clone OpenPMIx
uses: actions/checkout@v3
with:
submodules: recursive
repository: openpmix/openpmix
path: openpmix/master
ref: master
- name: Build OpenPMIx
run: |
cd openpmix/master
./autogen.pl
./configure --prefix=$RUNNER_TEMP/pmixinstall
make -j
make install
- name: Git clone PRRTE
uses: actions/checkout@v3
with:
submodules: recursive
clean: false
- name: Distcheck
run: |
pip install -r docs/requirements.txt
./autogen.pl
./configure --prefix=$RUNNER_TEMP/prteinstall --with-pmix=$RUNNER_TEMP/pmixinstall --enable-sphinx
make distcheck AM_DISTCHECK_MAKEFLAGS=-j AM_DISTCHECK_CONFIGURE_FLAGS="--with-pmix=$RUNNER_TEMP/pmixinstall"