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