Skip to content

Nymph2 2/cppexample #228

Nymph2 2/cppexample

Nymph2 2/cppexample #228

Workflow file for this run

name: Build and Test Nymph
on:
pull_request:
push:
branches: [main, develop]
tags: ['*']
env:
Nymph_BUILD_NYMPH_EXE: ON
Nymph_ENABLE_EXECUTABLES: ON
Nymph_ENABLE_PYTHON: OFF
Nymph_ENABLE_TESTING: ON
Nymph_SINGLETHREADED: OFF
Nymph_BUILD_TYPE: Debug
Nymph_TAG: test
NARG: 2
jobs:
docker_build:
name: Build and Test in Docker
runs-on: ubuntu-latest
steps:
- name: Checkout the repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build
id: build
uses: docker/build-push-action@v5
with:
context: .
push: false
load: true
build-args: |
img_repo=${{ env.BASE_IMAGE_REPO }}
img_tag=${{ env.BASE_IMAGE_TAG }}
build_type=${{ env.Nymph_BUILD_TYPE }}
build_tests_exe=${{ env.Nymph_ENABLE_TESTING }}
nymph_tag=${{ env.Nymph_TAG }}
narg=${{ env.NARG }}
platforms: linux/amd64
tags: ${{ env.Nymph_TAG }}
- name: Unit Tests
run: |
docker run --rm ${{ env.Nymph_TAG }} bash -c "/usr/local/p8/nymph/${{ env.Nymph_TAG }}/bin/RunTests"
build_cpp:
name: Build and Test Cpp
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest]
python-version: [3]
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Mac Dependencies
if: startsWith(matrix.os, 'macos') # Mac only
run: |
brew install \
boost \
rapidjson \
yaml-cpp
sudo mkdir -p /usr/local/include && \
sudo chown -R $(whoami) /usr/local/include
sudo mkdir -p /usr/local/lib && \
sudo chown -R $(whoami) /usr/local/lib
sudo mkdir -p /usr/local/bin && \
sudo chown -R $(whoami) /usr/local/bin
sudo mkdir -p /usr/local/share && \
sudo chown -R $(whoami) /usr/local/share
git clone https://github.com/pybind/pybind11.git
cd pybind11
git checkout v3.0.0
mkdir build
cd build
cmake -DPYBIND11_TEST=FALSE ..
make -j${{ env.NARG }} install
- name: Linux Dependencies
if: startsWith(matrix.os, 'ubuntu') # Linux only
run: |
sudo apt-get update
sudo apt-get install -yq \
libboost-all-dev \
libyaml-cpp-dev \
rapidjson-dev
git clone https://github.com/pybind/pybind11.git
cd pybind11
git checkout v3.0.0
mkdir build
cd build
sudo cmake -DPYBIND11_TEST=FALSE ..
sudo make -j${{ env.NARG }} install
cd ../..
pip install "pybind11[global]"
- name: Configure CMake
run: |
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=${Nymph_BUILD_TYPE} \
-DNymph_BUILD_NYMPH_EXE=${Nymph_BUILD_NYMPH_EXE} \
-DNymph_ENABLE_EXECUTABLES=${Nymph_ENABLE_EXECUTABLES} \
-DNymph_ENABLE_PYTHON=${Nymph_ENABLE_PYTHON} \
-DNymph_ENABLE_TESTING=${Nymph_ENABLE_TESTING} \
-DNymph_SINGLETHREADED=${Nymph_SINGLETHREADED} \
..
- name: CMake Build
run: |
cd build
make -j${{ env.NARG }} install
- name: Run tests
run: |
cd build
Testing/RunTests
- name: Build CppRepo Example
env:
Nymph_ENABLE_TESTING: OFF
Nymph_TAG: nymph2_2/cppexample
run: |
cd Examples/CppRepo
./BUILD_ME.sh
build_python:
name: Build and Test Python
runs-on: ${{ matrix.os }}
env:
Nymph_ENABLE_PYTHON: ON
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest]
python-version: [3]
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Mac Dependencies
if: startsWith(matrix.os, 'macos') # Mac only
run: |
brew install \
boost \
rapidjson \
yaml-cpp
sudo mkdir -p /usr/local/include && \
sudo chown -R $(whoami) /usr/local/include
sudo mkdir -p /usr/local/lib && \
sudo chown -R $(whoami) /usr/local/lib
sudo mkdir -p /usr/local/bin && \
sudo chown -R $(whoami) /usr/local/bin
sudo mkdir -p /usr/local/share && \
sudo chown -R $(whoami) /usr/local/share
git clone https://github.com/pybind/pybind11.git
cd pybind11
git checkout v3.0.0
mkdir build
cd build
cmake -DPYBIND11_TEST=FALSE ..
make -j${{ env.NARG }} install
- name: Linux Dependencies
if: startsWith(matrix.os, 'ubuntu') # Linux only
run: |
sudo apt-get update
sudo apt-get install -yq \
libboost-all-dev \
libyaml-cpp-dev \
rapidjson-dev
git clone https://github.com/pybind/pybind11.git
cd pybind11
git checkout v3.0.0
mkdir build
cd build
sudo cmake -DPYBIND11_TEST=FALSE ..
sudo make -j${{ env.NARG }} install
- name: Build Nymph/Cpp
run: |
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=${Nymph_BUILD_TYPE} \
-DNymph_BUILD_NYMPH_EXE=${Nymph_BUILD_NYMPH_EXE} \
-DNymph_ENABLE_EXECUTABLES=${Nymph_ENABLE_EXECUTABLES} \
-DNymph_ENABLE_PYTHON=${Nymph_ENABLE_PYTHON} \
-DNymph_ENABLE_TESTING=${Nymph_ENABLE_TESTING} \
-DNymph_SINGLETHREADED=${Nymph_SINGLETHREADED} \
-DPBUILDER_PY_INSTALL_IN_SITELIB=TRUE
..
make -j${{ env.NARG }} install
- name: Install nymph
run: |
env
pip -v install -e .
- name: Run Tests
run: |
cd Testing/Python
python -m unittest discover -v
# For debugging
- name: Setup tmate session
if: ${{ ! success() }}
uses: mxschmitt/action-tmate@v3