From 04f14d7c1f397c6b5de7b1fb7a189a4a7bc40f6a Mon Sep 17 00:00:00 2001 From: Ralph Castain Date: Fri, 15 Sep 2023 21:39:43 -0600 Subject: [PATCH] Prototype Github Actions for PRRTE CI Based on what @jsquyres did for PMIx Signed-off-by: Ralph Castain (cherry picked from commit 9015ca02cce72acc03f86d399f939843c42b3dc8) --- .github/workflows/builds.yaml | 139 ++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 .github/workflows/builds.yaml diff --git a/.github/workflows/builds.yaml b/.github/workflows/builds.yaml new file mode 100644 index 0000000000..d02be34cef --- /dev/null +++ b/.github/workflows/builds.yaml @@ -0,0 +1,139 @@ +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 + ./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 + + 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"