Update minimum cmake version to 3.5 (#150) #677
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CMake | |
on: [push] | |
env: | |
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
BUILD_TYPE: Release | |
jobs: | |
build: | |
strategy: | |
matrix: | |
#os: [ubuntu-18.04, ubuntu-20.04, macOS-latest] | |
os: [ubuntu-20.04] | |
runs-on: ${{ matrix.os}} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install OS Dependencies | |
shell: bash | |
run: | | |
if [ `echo ${{matrix.os}} | cut -d - -f 1` = "ubuntu" ]; then | |
sudo apt-get --allow-releaseinfo-change update -y | |
[ `echo ${{matrix.os}} | cut -d . -f 1` = "ubuntu-20" ] && sudo apt-get install python-is-python3 | |
sudo apt-get install libbz2-dev libboost-all-dev libflac-dev libnetcdf-dev python python3 python3-pip python3-setuptools | |
elif [ `echo ${{matrix.os}} | cut -d - -f 1` = "macOS" ]; then | |
brew install [email protected] | |
brew link --overwrite [email protected] | |
brew install bzip2 boost boost-python3 flac netcdf | |
else | |
echo 'No installed package manager!' | |
exit 1 | |
fi | |
- name: Install Python Packages | |
run: | | |
pip3 install numpy scipy matplotlib astropy healpy sphinx | |
- name: Create Build Environment | |
# Some projects don't allow in-source building, so create a separate build directory | |
# We'll use this as our working directory for all subsequent commands | |
run: cmake -E make_directory ${{runner.workspace}}/build | |
- name: Configure CMake | |
# Use a bash shell so we can use the same syntax for environment variable | |
# access regardless of the host operating system | |
shell: bash | |
working-directory: ${{runner.workspace}}/build | |
# Note the current convention is to use the -S and -B options here to specify source | |
# and build directories, but this is only available with CMake 3.13 and higher. | |
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12 | |
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE | |
- name: Build | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
# Execute the build. You can specify a specific target with "--target <NAME>" | |
run: cmake --build . --config $BUILD_TYPE | |
- name: Test | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
# Execute tests defined by the CMake configuration. | |
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail | |
run: ./env-shell.sh ctest -C $BUILD_TYPE --output-on-failure | |
- name: Docs | |
if: github.ref_name == 'master' && startsWith(matrix.os, 'ubuntu') | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
# Build docs | |
run: ./env-shell.sh cmake --build . --config $BUILD_TYPE --target docs | |
- name: Checkout gh_pages | |
if: github.ref_name == 'master' && startsWith(matrix.os, 'ubuntu') | |
uses: actions/checkout@v3 | |
with: | |
ref: gh-pages | |
path: gh-pages | |
- name: Commit docs | |
if: github.ref_name == 'master' && startsWith(matrix.os, 'ubuntu') | |
shell: bash | |
run: | | |
cp -r ${{runner.workspace}}/build/docs/* gh-pages/ | |
cd gh-pages | |
touch .nojekyll | |
git config --local user.name github-actions[bot] | |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git add . | |
git commit -m "Update documentation" -a || true | |
git push |