name: continuous build on: [push, pull_request] jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] build: [cmake, make] steps: - name: Checkout repository uses: actions/checkout@v2 - name: Compilation cache uses: actions/cache@v2 with: path: ~/.ccache # We include the commit sha in the cache key, as new cache entries are # only created if there is no existing entry for the key yet. key: ${{ runner.os }}-ccache-${{ github.sha }} # Restore any ccache cache entry, if none for # ${{ runner.os }}-ccache-${{ github.sha }} exists restore-keys: | ${{ runner.os }}-ccache - name: Print system information run: | if [ "$RUNNER_OS" == "Linux" ]; then cat /proc/cpuinfo elif [ "$RUNNER_OS" == "macOS" ]; then sysctl -a | grep machdep.cpu else echo "$RUNNER_OS not supported" exit 1 fi - name: Install Dependencies run: | if [ "$RUNNER_OS" == "Linux" ]; then sudo apt-get install -y gfortran cmake ccache elif [ "$RUNNER_OS" == "macOS" ]; then brew install coreutils cmake ccache else echo "$RUNNER_OS not supported" exit 1 fi ccache -M 300M # Limit the ccache size; Github's overall cache limit is 5GB - name: Build if: matrix.build == 'make' run: | if [ "$RUNNER_OS" == "Linux" ]; then export PATH="/usr/lib/ccache:${PATH}" elif [ "$RUNNER_OS" == "macOS" ]; then export PATH="$(brew --prefix)/opt/ccache/libexec:${PATH}" else echo "$RUNNER_OS not supported" exit 1 fi make -j$(nproc) DYNAMIC_ARCH=1 USE_OPENMP=0 - name: CMake build if: matrix.build == 'cmake' run: | if [ "$RUNNER_OS" == "Linux" ]; then export PATH="/usr/lib/ccache:${PATH}" elif [ "$RUNNER_OS" == "macOS" ]; then export PATH="$(brew --prefix)/opt/ccache/libexec:${PATH}" else echo "$RUNNER_OS not supported" exit 1 fi mkdir build cd build cmake -DDYNAMIC_ARCH=1 -DNOFORTRAN=0 -DBUILD_WITHOUT_LAPACK=0 -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release .. make -j$(nproc)