name: CMake Build on: workflow_dispatch: inputs: install_prefix: description: 'CMake install prefix (relative to workspace)' default: 'install' required: true build_type: description: 'CMake build type' default: 'Release' required: true push: branches: - cmake - test_dev pull_request: branches: - cmake - test_dev jobs: build: runs-on: ubuntu-latest steps: # Step 1: Checkout repository - name: Checkout repository uses: actions/checkout@v3 # Step 2: Install dependencies (CMake and compiler) - name: Setup CMake and compiler run: | sudo apt update sudo apt install -y cmake build-essential mpich libmpich-dev libblas-dev liblapack-dev # Step 3: Set defaults for inputs when triggered by push/PR - name: Set default build variables run: | echo "BUILD_TYPE=${{ github.event.inputs.build_type || 'Release' }}" >> $GITHUB_ENV echo "INSTALL_PREFIX=${{ github.workspace }}/${{ github.event.inputs.install_prefix || 'install' }}" >> $GITHUB_ENV # Step 4: Configure CMake - name: Configure CMake run: cmake -S . -B build \ -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX # Step 5: Build the project - name: Build run: cmake --build build -- -j$(nproc) # Step 6: Optional install - name: Install run: cmake --install build