Skip to content
name: Build and Test - Compiler Zoo
on: [pull_request, workflow_dispatch]
env:
GH_ACTIONS_TOOLCHAIN: .github/workflows/toolchains/gh-actions.cmake
ENV_PREFIX_PATH: "/home/software/install/openblas-lp64-sequential"
jobs:
release_build:
name: Release Build and Test
runs-on: ubuntu-latest
container:
image: dbwy/chemistry
strategy:
matrix:
compiler: [ {suite: gnu, version: 12}, {suite: llvm, version: 14} ]
openmp_flag: [ON, OFF]
mpi_flag: [ON, OFF]
exclude:
- compiler: {suite: llvm, version: 14}
openmp_flag: ON
- openmp_flag: OFF
mpi_flag: ON
steps:
- uses: actions/checkout@v3
- name: Setup Compiler
shell: bash
run: $GITHUB_WORKSPACE/.github/workflows/scripts/compiler_setup.sh
${{matrix.compiler.suite}} ${{matrix.compiler.version}}
- name: Enable or Disable OpenMP
shell: bash
run: echo "set(MACIS_ENABLE_OPENMP ${{matrix.openmp_flag}} CACHE BOOL \"\" FORCE)" >>
${GITHUB_WORKSPACE}/${GH_ACTIONS_TOOLCHAIN}
- name: Enable or Disable MPI
shell: bash
run: echo "set(MACIS_ENABLE_MPI ${{matrix.mpi_flag}} CACHE BOOL \"\" FORCE)" >>
${GITHUB_WORKSPACE}/${GH_ACTIONS_TOOLCHAIN}
- name: Setup Build Type
shell: bash
run: echo "set(CMAKE_BUILD_TYPE Release CACHE BOOL \"\" FORCE)" >>
${GITHUB_WORKSPACE}/${GH_ACTIONS_TOOLCHAIN}
- name: Configure CMake
shell: bash
run: cmake -S $GITHUB_WORKSPACE -B ${{runner.workspace}}/build
-DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/install
-DCMAKE_PREFIX_PATH=${ENV_PREFIX_PATH}
-DCMAKE_TOOLCHAIN_FILE=${GITHUB_WORKSPACE}/${GH_ACTIONS_TOOLCHAIN}
- name: Build
shell: bash
run: cmake --build ${{runner.workspace}}/build -j2
- name: Test
shell: bash
run: cmake --build ${{runner.workspace}}/build --target test
debug_build:
name: Debug Build and Test
runs-on: ubuntu-latest
container:
image: dbwy/chemistry
steps:
- uses: actions/checkout@v3
- name: Setup Compiler
shell: bash
run: $GITHUB_WORKSPACE/.github/workflows/scripts/compiler_setup.sh gnu 12
- name: Setup Build Type
shell: bash
run: echo "set(CMAKE_BUILD_TYPE Debug CACHE BOOL \"\" FORCE)" >> ${GITHUB_WORKSPACE}/${GH_ACTIONS_TOOLCHAIN}
- name: Configure CMake
shell: bash
run: cmake -S $GITHUB_WORKSPACE -B ${{runner.workspace}}/build
-DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/install
-DCMAKE_PREFIX_PATH=${ENV_PREFIX_PATH}
-DCMAKE_TOOLCHAIN_FILE=${GITHUB_WORKSPACE}/${GH_ACTIONS_TOOLCHAIN}
- name: Build
shell: bash
run: cmake --build ${{runner.workspace}}/build -j2
- name: Test
shell: bash
run: cmake --build ${{runner.workspace}}/build --target test
subproject_build:
name: Build as Subproject
needs: release_build
runs-on: ubuntu-latest
container:
image: dbwy/chemistry
steps:
- uses: actions/checkout@v3
- name: Setup Compiler
shell: bash
run: $GITHUB_WORKSPACE/.github/workflows/scripts/compiler_setup.sh gnu 12
- name: CMake Subproject Configure
shell: bash
run: cmake -S $GITHUB_WORKSPACE/tests/cmake/subproject
-B ${{runner.workspace}}/cmake_subproject_build
-DGITHUB_REPOSITORY=$GITHUB_ACTOR/MACIS
-DGIT_REVISION=$GITHUB_HEAD_REF
-DFETCHCONTENT_SOURCE_DIR_MACIS=$GITHUB_WORKSPACE
-DCMAKE_PREFIX_PATH=${ENV_PREFIX_PATH}
-DCMAKE_TOOLCHAIN_FILE=${GITHUB_WORKSPACE}/${GH_ACTIONS_TOOLCHAIN}
- name: CMake Subproject Build
shell: bash
run: cmake --build ${{runner.workspace}}/cmake_subproject_build -j2
cmake_discovery:
name: CMake Discovery
needs: release_build
runs-on: ubuntu-latest
container:
image: dbwy/chemistry
steps:
- uses: actions/checkout@v3
- name: Setup Compiler
shell: bash
run: $GITHUB_WORKSPACE/.github/workflows/scripts/compiler_setup.sh gnu 12
- name: Configure CMake
shell: bash
run: cmake -S $GITHUB_WORKSPACE -B ${{runner.workspace}}/build
-DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/install
-DCMAKE_PREFIX_PATH=${ENV_PREFIX_PATH}
-DCMAKE_TOOLCHAIN_FILE=${GITHUB_WORKSPACE}/${GH_ACTIONS_TOOLCHAIN}
- name: Build
shell: bash
run: cmake --build ${{runner.workspace}}/build -j2
- name: Install
shell: bash
run: cmake --build ${{runner.workspace}}/build --target install
- name: CMake Discovery Configure
shell: bash
run: cmake -S $GITHUB_WORKSPACE/tests/cmake/discovery -B ${{runner.workspace}}/cmake_discovery_build
-DCMAKE_PREFIX_PATH="${{runner.workspace}}/install;${ENV_PREFIX_PATH}"
-DCMAKE_TOOLCHAIN_FILE=${GITHUB_WORKSPACE}/${GH_ACTIONS_TOOLCHAIN}
- name: CMake Discovery Build
shell: bash
run: cmake --build ${{runner.workspace}}/cmake_discovery_build -j2