tconfig.yml - pism - [fork] customized build of PISM, the parallel ice sheet model (tillflux branch) (HTM) git clone git://src.adamsgaard.dk/pism (DIR) Log (DIR) Files (DIR) Refs (DIR) LICENSE --- tconfig.yml (6396B) --- 1 version: 2 2 3 jobs: 4 build-gcc: 5 docker: 6 - image: ckhrulev/pism-ubuntu:0.1 7 8 environment: 9 CC: ccache mpicc 10 CXX: ccache mpicxx 11 CCACHE_COMPRESS: 1 12 PETSC_DIR: /usr/lib/petsc/ 13 PYTHONPATH: /home/builder/project/build/site-packages 14 15 steps: 16 - checkout 17 - restore_cache: 18 keys: 19 - ccache-gcc-{{ .Branch }} 20 - run: 21 name: Create the build directory 22 command: mkdir -p build 23 - run: 24 name: Configure PISM 25 # CMAKE_BUILD_TYPE=Debug enables pedantic compiler warnings and one or two extra 26 # tests. 27 # 28 # CMAKE_CXX_FLAGS is set to a) disable warnings caused by OpenMPI internals and 29 # b) treat all warnings as errors except for the one about the "noreturn" 30 # attribute. 31 # 32 # We need Python bindings and extra executables for many regression tests. 33 # 34 # PROJ, NetCDF built with parallel I/O, and PnetCDF are optional dependencies but 35 # we should build and test the code that uses them. The same applies to ICEBIN. 36 # 37 # CMAKE_FIND_ROOT_PATH points to HDF5 and NetCDF with support for parallel I/O. 38 command: >- 39 cmake -B build -S . 40 -DCMAKE_BUILD_TYPE=Debug 41 -DCMAKE_FIND_ROOT_PATH="$HOME/local/hdf5;$HOME/local/netcdf;$HOME/local/pnetcdf;$HOME/local/parallelio" 42 -DCMAKE_CXX_FLAGS="-Wno-cast-function-type -Werror -Wno-error=suggest-attribute=noreturn -Wno-error=undef" 43 -DPism_USE_PROJ=Yes 44 -DPism_USE_PARALLEL_NETCDF4=Yes 45 -DPism_USE_PNETCDF=Yes 46 -DPism_USE_PIO=Yes 47 -DPython_ADDITIONAL_VERSIONS=3 48 -DPism_BUILD_PYTHON_BINDINGS=Yes 49 -DPism_BUILD_EXTRA_EXECS=Yes 50 -DPism_BUILD_ICEBIN=Yes 51 - run: 52 name: Build PISM using GCC 53 command: make --no-print-directory -C build -j4 all 54 - run: 55 name: Run regression tests 56 command: cd build && ctest -j 4 --output-on-failure 57 - save_cache: 58 key: ccache-gcc-{{ .Branch }}-{{ .BuildNum }} 59 paths: 60 - ~/.ccache 61 62 build-gcc-minimal: 63 docker: 64 - image: ckhrulev/pism-ubuntu:0.1 65 66 environment: 67 CC: ccache mpicc 68 CXX: ccache mpicxx 69 CCACHE_COMPRESS: 1 70 PETSC_DIR: /usr/lib/petsc/ 71 72 steps: 73 - checkout 74 - restore_cache: 75 keys: 76 - ccache-gcc-minimal-{{ .Branch }} 77 - run: 78 name: Create the build directory 79 command: mkdir -p build 80 - run: 81 name: Configure PISM 82 command: >- 83 cmake -B build -S . 84 -DCMAKE_BUILD_TYPE=Debug 85 -DCMAKE_FIND_ROOT_PATH="$HOME/local/hdf5;$HOME/local/netcdf" 86 -DCMAKE_CXX_FLAGS="-Wno-cast-function-type -Werror -Wno-error=suggest-attribute=noreturn -Wno-error=undef" 87 - run: 88 name: Build PISM using GCC 89 command: make --no-print-directory -C build -j4 all 90 - save_cache: 91 key: ccache-gcc-{{ .Branch }}-{{ .BuildNum }} 92 paths: 93 - ~/.ccache 94 95 build-clang: 96 docker: 97 - image: ckhrulev/pism-ubuntu:0.1 98 99 environment: 100 CCACHE_COMPRESS: 1 101 PETSC_DIR: /usr/lib/petsc/ 102 PYTHONPATH: /home/builder/project/build/site-packages 103 104 steps: 105 - checkout 106 - restore_cache: 107 keys: 108 - ccache-clang-{{ .Branch }} 109 - run: 110 name: Create the build directory 111 command: mkdir -p build 112 - run: 113 name: Configure PISM 114 command: >- 115 CC="ccache $(mpicc -show | sed s/gcc/clang/)" 116 CXX="ccache $(mpicxx -show | sed s/g++/clang++/)" 117 cmake -B build -S . 118 -DCMAKE_BUILD_TYPE=Debug 119 -DCMAKE_FIND_ROOT_PATH="$HOME/local/hdf5;$HOME/local/netcdf;$HOME/local/pnetcdf;$HOME/local/parallelio" 120 -DCMAKE_C_FLAGS="-Werror -Wno-unused-command-line-argument" 121 -DCMAKE_CXX_FLAGS="-Werror -Wno-unused-command-line-argument" 122 -DPism_USE_PROJ=Yes 123 -DPism_USE_PARALLEL_NETCDF4=Yes 124 -DPism_USE_PNETCDF=Yes 125 -DPism_USE_PIO=Yes 126 -DPython_ADDITIONAL_VERSIONS=3 127 -DPism_BUILD_PYTHON_BINDINGS=Yes 128 -DPism_BUILD_EXTRA_EXECS=Yes 129 -DPism_BUILD_ICEBIN=Yes 130 - run: 131 name: Build PISM using Clang 132 command: make --no-print-directory -C build -j4 all 133 - run: 134 name: Run regression tests 135 command: cd build && ctest -j 4 --output-on-failure 136 - save_cache: 137 key: ccache-clang-{{ .Branch }}-{{ .BuildNum }} 138 paths: 139 - ~/.ccache 140 141 build-clang-minimal: 142 docker: 143 - image: ckhrulev/pism-ubuntu:0.1 144 145 environment: 146 CCACHE_COMPRESS: 1 147 PETSC_DIR: /usr/lib/petsc/ 148 149 steps: 150 - checkout 151 - restore_cache: 152 keys: 153 - ccache-clang-minimal-{{ .Branch }} 154 - run: 155 name: Create the build directory 156 command: mkdir -p build 157 - run: 158 name: Configure PISM 159 command: >- 160 CC="ccache $(mpicc -show | sed s/gcc/clang/)" 161 CXX="ccache $(mpicxx -show | sed s/g++/clang++/)" 162 cmake -B build -S . 163 -DCMAKE_BUILD_TYPE=Debug 164 -DCMAKE_FIND_ROOT_PATH="$HOME/local/hdf5;$HOME/local/netcdf" 165 -DCMAKE_C_FLAGS="-Werror -Wno-unused-command-line-argument" 166 -DCMAKE_CXX_FLAGS="-Werror -Wno-unused-command-line-argument" 167 - run: 168 name: Build PISM using Clang 169 command: make --no-print-directory -C build -j4 all 170 - save_cache: 171 key: ccache-clang-{{ .Branch }}-{{ .BuildNum }} 172 paths: 173 - ~/.ccache 174 175 build-manual: 176 docker: 177 - image: ckhrulev/pism-ubuntu:0.1 178 179 steps: 180 - checkout 181 - run: 182 name: Build the manual 183 command: | 184 mkdir -p build 185 cmake -B build -S doc/ -DCMAKE_INSTALL_PREFIX=/tmp/pism -DPism_DOC_DIR="manual" 186 make -C build install 187 tar -czf pism-manual.tgz -C /tmp/pism/manual/html . 188 - store_artifacts: 189 path: pism-manual.tgz 190 191 workflows: 192 version: 2 193 build-and-test: 194 jobs: 195 - build-gcc 196 - build-gcc-minimal 197 - build-clang 198 - build-clang-minimal 199 - build-manual