|
|
@@ -0,0 +1,70 @@ |
|
|
|
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: 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 .. |
|
|
|
make -j$(nproc) |