Nymph2 2/cppexample #230
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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/Bindings | |
| python -m unittest discover -v | |
| # eventually include these tests | |
| # cd ../nymph | |
| # python -m unittest discover -v | |
| # For debugging | |
| - name: Setup tmate session | |
| if: ${{ ! success() }} | |
| uses: mxschmitt/action-tmate@v3 | |