|
- name: continuous build
-
- on: [push, pull_request]
-
- jobs:
- build:
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [ubuntu-latest, macos-latest]
- fortran: [gfortran, flang]
- 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: gfortran build
- if: matrix.build == 'make' && matrix.fortran == 'gfortran'
- 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: flang build
- if: matrix.build == 'make' && matrix.fortran == 'flang'
- run: |
- if [ "$RUNNER_OS" == "Linux" ]; then
- export PATH="/usr/lib/ccache:${PATH}"
- elif [ "$RUNNER_OS" == "macOS" ]; then
- exit 0
- else
- echo "$RUNNER_OS not supported"
- exit 1
- fi
-
- cd /usr/
- sudo wget -nv https://github.com/flang-compiler/flang/releases/download/flang_20190329/flang-20190329-x86-70.tgz
- sudo tar xf flang-20190329-x86-70.tgz
- sudo rm flang-20190329-x86-70.tgz
- cd -
-
- make -j$(nproc) DYNAMIC_ARCH=1 USE_OPENMP=0 FC=flang
-
-
- - name: CMake gfortran build
- if: matrix.build == 'cmake' && matrix.fortran == 'gfortran'
- 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)
|