From 34ae0bf1bc72bcf92b416fee3f5e8cc62b700d84 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 13:16:08 +0100 Subject: [PATCH 01/29] Minimal setup on 22.04 --- scripts/setup_ubuntu2204.sh | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index 3594dcb..5f88fa5 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -16,38 +16,19 @@ export DEBIAN_FRONTEND=noninteractive # https://chaste.github.io/docs/installguides/ubuntu-package/ -echo "deb [signed-by=/usr/share/keyrings/chaste.asc] https://chaste.github.io/ubuntu jammy/" > /etc/apt/sources.list.d/chaste.list -apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 422C4D99 -wget -O /usr/share/keyrings/chaste.asc https://chaste.github.io/chaste.asc apt-get update && \ apt-get install -y --no-install-recommends \ - chaste-dependencies \ + cmake \ + environment-modules \ + g++ \ git \ - valgrind \ - libpetsc-real3.15-dbg \ - libfltk1.1 \ - hdf5-tools \ - cmake-curses-gui \ lcov \ - doxygen \ - graphviz \ - gnuplot \ - paraview \ - mencoder \ + python2.7 \ + python3 \ python3-dev \ python3-pip \ - python2.7 \ - libffi-dev \ - environment-modules - -# libgoogle-perftools-dev: libunwind dependency version required conflicts -# with the pre-installed version on github ubuntu-22.04 runners -# https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-14/+bug/1989124 - -# https://bugs.launchpad.net/ubuntu/+source/vtk7/+bug/1878103 -# https://github.com/Chaste/chaste-docker/blob/4dd5a4819716c3defa0bfb5145bfa902bf07ecf4/Dockerfile#L89 -update-alternatives --install /usr/bin/vtk vtk /usr/bin/vtk7 10 + python3-venv update-alternatives --install /usr/local/bin/python python /usr/bin/python3 10 update-alternatives --install /usr/local/bin/pip pip /usr/bin/pip3 10 @@ -55,4 +36,3 @@ update-alternatives --install /usr/local/bin/pip pip /usr/bin/pip3 10 update-alternatives --install /usr/local/bin/python2 python2 /usr/bin/python2.7 5 pip install --upgrade pip -pip install texttest From 49324d45678cc025fe4231354681cb000bf42d36 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 14:02:42 +0100 Subject: [PATCH 02/29] Install OpenGL for VTK --- scripts/setup_ubuntu2204.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index 5f88fa5..20dc26e 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -30,6 +30,18 @@ apt-get install -y --no-install-recommends \ python3-pip \ python3-venv +# Install OpenGL for VTK +# https://discourse.vtk.org/t/trouble-installing-vtk-on-ubuntu/5148 +apt-get install -y --no-install-recommends \ + freeglut3 \ + freeglut3-dev \ + libgl1-mesa-dev \ + libgl1-mesa-glx \ + libglew1.5 \ + libglew1.5-dev \ + libglu1-mesa \ + libglu1-mesa-dev + update-alternatives --install /usr/local/bin/python python /usr/bin/python3 10 update-alternatives --install /usr/local/bin/pip pip /usr/bin/pip3 10 From 01e49264670b4a6d6053fed8542919fa291c9827 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 14:17:14 +0100 Subject: [PATCH 03/29] Fix libglew version on 22.04 --- scripts/setup_ubuntu2204.sh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index 20dc26e..ea465d1 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -19,16 +19,16 @@ export DEBIAN_FRONTEND=noninteractive apt-get update && \ apt-get install -y --no-install-recommends \ - cmake \ - environment-modules \ - g++ \ - git \ - lcov \ - python2.7 \ - python3 \ - python3-dev \ - python3-pip \ - python3-venv + cmake \ + environment-modules \ + g++ \ + git \ + lcov \ + python2.7 \ + python3 \ + python3-dev \ + python3-pip \ + python3-venv # Install OpenGL for VTK # https://discourse.vtk.org/t/trouble-installing-vtk-on-ubuntu/5148 @@ -37,8 +37,8 @@ apt-get install -y --no-install-recommends \ freeglut3-dev \ libgl1-mesa-dev \ libgl1-mesa-glx \ - libglew1.5 \ - libglew1.5-dev \ + libglew2.2 \ + libglew-dev \ libglu1-mesa \ libglu1-mesa-dev From b521462e1670d4aee768338bbcda029aca0ea728 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 15:03:53 +0100 Subject: [PATCH 04/29] Install make --- scripts/setup_ubuntu2204.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index ea465d1..1906a66 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -13,10 +13,10 @@ # gnuplot, paraview # APT-Sources: https://chaste.github.io/ubuntu jammy/ Packages -export DEBIAN_FRONTEND=noninteractive - # https://chaste.github.io/docs/installguides/ubuntu-package/ +export DEBIAN_FRONTEND=noninteractive + apt-get update && \ apt-get install -y --no-install-recommends \ cmake \ @@ -24,6 +24,7 @@ apt-get install -y --no-install-recommends \ g++ \ git \ lcov \ + make \ python2.7 \ python3 \ python3-dev \ From a4671d7a4dad7fbad799954ad35679bbe47bbe4b Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 15:11:59 +0100 Subject: [PATCH 05/29] Update and slim dockerfile --- Dockerfile | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index c623789..f63bcb9 100755 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,13 @@ -ARG BASE=focal +ARG BASE=jammy FROM ubuntu:${BASE} ARG XSD=4.0.0 -ARG XERCESC=3.2.3 +ARG XERCESC=3.2.4 ARG SUNDIALS=5.8.0 -ARG BOOST=1.73.0 -ARG VTK=7.1.1 -ARG PETSC=3.8.4 +ARG BOOST=1.74.0 +ARG VTK=8.2.0 +ARG PETSC=3.15.5 ARG HDF5=1.10.8 SHELL ["/bin/bash", "-e", "-o", "pipefail", "-c"] @@ -36,9 +36,7 @@ RUN useradd -r -m -d ${DEFAULT_HOME} -s /bin/bash ${DEFAULT_USER} && \ wget \ curl \ rsync \ - jq \ - nano \ - vim && \ + jq && \ . /etc/os-release && \ os_num="$(echo ${VERSION_ID} | sed 's/\.//')" && \ setup_ubuntu${os_num}.sh && \ @@ -55,8 +53,6 @@ RUN useradd -r -m -d ${DEFAULT_HOME} -s /bin/bash ${DEFAULT_USER} && \ rm -rf /var/tmp/* && \ rm -rf /tmp/* -ENV TEXTTEST_HOME="/usr/local/bin/texttest" - USER ${DEFAULT_USER}:${DEFAULT_USER} WORKDIR ${DEFAULT_HOME} From 9d2d75021fb7d3ae045a5e08470be5ef007e2c2c Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 16:00:14 +0100 Subject: [PATCH 06/29] Add inputs to ubuntu-tests --- .github/workflows/ubuntu-tests.yml | 182 ++++++++++++++++++----------- 1 file changed, 114 insertions(+), 68 deletions(-) diff --git a/.github/workflows/ubuntu-tests.yml b/.github/workflows/ubuntu-tests.yml index 4838159..bbd1789 100644 --- a/.github/workflows/ubuntu-tests.yml +++ b/.github/workflows/ubuntu-tests.yml @@ -2,130 +2,176 @@ name: ubuntu-tests on: workflow_dispatch: + inputs: + chaste_branch: + description: 'Chaste branch' + required: true + type: string + default: 'develop' + + boost_ver: + description: 'Boost version' + required: true + type: string + default: '1.74.0' + + hdf5_ver: + description: 'HDF5 version' + required: true + type: string + default: '1.10.8' + + petsc_ver: + description: 'PETSc version' + required: true + type: string + default: '3.15.5' + + petsc_arch: + description: 'PETSc arch' + required: true + type: choice + options: + - 'linux-gnu' + - 'linux-gnu-opt' + default: 'linux-gnu' + + sundials_ver: + description: 'SUNDIALS version' + required: true + type: string + default: '5.8.0' + + vtk_ver: + description: 'VTK version' + required: true + type: string + default: '9.2.6' + + xercesc_ver: + description: 'XercesC version' + required: true + type: string + default: '3.2.4' + + xsd_ver: + description: 'XSD version' + required: true + type: string + default: '4.0.0' + + os: + description: 'OS' + required: true + type: choice + options: + - 'ubuntu-20.04' + - 'ubuntu-22.04' + default: 'ubuntu-22.04' jobs: setup: name: test modules on ubuntu - strategy: - matrix: - include: - - os: ubuntu-20.04 - xsd_ver: 4.0.0 - xercesc_ver: 3.2.4 - sundials_ver: 5.8.0 - boost_ver: 1.74.0 - vtk_ver: 7.1.1 - petsc_ver: 3.15.5 - hdf5_ver: 1.10.8 - petsc_arch: linux-gnu - - - os: ubuntu-22.04 - xsd_ver: 4.0.0 - xercesc_ver: 3.2.4 - sundials_ver: 5.8.0 - boost_ver: 1.74.0 - vtk_ver: 7.1.1 - petsc_ver: 3.15.5 - hdf5_ver: 1.10.8 - petsc_arch: linux-gnu - - fail-fast: false - - runs-on: ${{ matrix.os }} + runs-on: ${{ github.event.inputs.os }} steps: - name: checkout uses: actions/checkout@v3 - - name: setup defaults + - name: setup os uses: ./.github/actions/setup-defaults - name: install and cache xsd module uses: ./.github/actions/setup-xsd with: - xsd_ver: ${{ matrix.xsd_ver }} - - - name: build and cache xercesc module - uses: ./.github/actions/setup-xercesc - with: - xercesc_ver: ${{ matrix.xercesc_ver }} + xsd_ver: ${{ github.event.inputs.xsd_ver }} - name: build and cache sundials module uses: ./.github/actions/setup-sundials with: - sundials_ver: ${{ matrix.sundials_ver }} + sundials_ver: ${{ github.event.inputs.sundials_ver }} + + - name: build and cache xercesc module + uses: ./.github/actions/setup-xercesc + with: + xercesc_ver: ${{ github.event.inputs.xercesc_ver }} - name: build and cache boost module uses: ./.github/actions/setup-boost with: - boost_ver: ${{ matrix.boost_ver }} + boost_ver: ${{ github.event.inputs.boost_ver }} - name: build and cache vtk module uses: ./.github/actions/setup-vtk with: - vtk_ver: ${{ matrix.vtk_ver }} + vtk_ver: ${{ github.event.inputs.vtk_ver }} - name: build and cache petsc_hdf5 module uses: ./.github/actions/setup-petsc_hdf5 with: - petsc_ver: ${{ matrix.petsc_ver }} - hdf5_ver: ${{ matrix.hdf5_ver }} - petsc_arch: ${{ matrix.petsc_arch }} + hdf5_ver: ${{ github.event.inputs.hdf5_ver }} + petsc_ver: ${{ github.event.inputs.petsc_ver }} + petsc_arch: ${{ github.event.inputs.petsc_arch }} - name: checkout chaste uses: actions/checkout@v3 with: repository: Chaste/Chaste path: Chaste + ref: ${{ github.event.inputs.chaste_branch }} submodules: recursive - name: make build and test directories run: | - mkdir -p Chaste/build - mkdir -p ${CHASTE_TEST_OUTPUT} + mkdir -p chaste-build-dir + mkdir -p chaste-test-dir + echo "CHASTE_TEST_OUTPUT=$(pwd)/chaste-test-dir" >> ${GITHUB_ENV} - - name: compile chaste build info - working-directory: Chaste/build + - name: create module init script + run: | + echo "source /etc/profile.d/modules.sh" > init.sh + echo "module use /home/runner/modules/modulefiles" >> init.sh + echo "module purge" >> init.sh + echo "module load boost" >> init.sh + echo "module load petsc_hdf5" >> init.sh + echo "module load sundials" >> init.sh + echo "module load vtk" >> init.sh + echo "module load xercesc" >> init.sh + echo "module load xsd" >> init.sh + working-directory: chaste-build-dir + + - name: cmake configure run: | - module purge - module load xsd/${{ matrix.xsd_ver }} - module load xercesc/${{ matrix.xercesc_ver }} - module load sundials/${{ matrix.sundials_ver }} - module load boost/${{ matrix.boost_ver }} - module load vtk/${{ matrix.vtk_ver }} - module load petsc_hdf5/${{ matrix.petsc_ver }}_${{ matrix.hdf5_ver }}/${{ matrix.petsc_arch }} - - cmake \ + source init.sh + cmake .. \ -DBoost_NO_BOOST_CMAKE=ON \ -DBoost_NO_SYSTEM_PATHS=ON \ -DBOOST_ROOT=${BOOST_ROOT} \ - -DCMAKE_PREFIX_PATH="${SUNDIALS_ROOT};${VTK_ROOT};${XERCESC_ROOT};${XSD_ROOT}" \ - -DCMAKE_BUILD_TYPE=Release \ - .. + -DCMAKE_BUILD_TYPE=Release + working-directory: chaste-build-dir + - name: compile build info + run: | + source init.sh cmake --build . --parallel $(nproc) --target TestChasteBuildInfo - ctest -V -R TestChasteBuildInfo --output-on-failure | tee buildinfo + working-directory: chaste-build-dir - # login to source /etc/profile.d/modules.sh - shell: bash --login -e -o pipefail {0} - - name: verify dependency versions - working-directory: Chaste/build run: | sed -i.bak 's/"//g' buildinfo # removes quotes from old sundials versions maj_min_rev='^[0-9]\+\.[0-9]\+\.[0-9]\+' maj_min='^[0-9]\+\.[0-9]\+' - xsd_ver="$(echo ${{ matrix.xsd_ver }} | grep -o ${maj_min_rev})" - xercesc_ver="$(echo ${{ matrix.xercesc_ver }} | grep -o ${maj_min_rev})" - sundials_ver="$(echo ${{ matrix.sundials_ver }} | grep -o ${maj_min_rev})" - boost_ver="$(echo ${{ matrix.boost_ver }} | grep -o ${maj_min_rev})" - vtk_ver="$(echo ${{ matrix.vtk_ver }} | grep -o ${maj_min})" - petsc_ver="$(echo ${{ matrix.petsc_ver }} | grep -o ${maj_min_rev})" - hdf5_ver="$(echo ${{ matrix.hdf5_ver }} | grep -o ${maj_min_rev})" + xsd_ver="$(echo ${{ github.event.inputs.xsd_ver }} | grep -o ${maj_min_rev})" + xercesc_ver="$(echo ${{ github.event.inputs.xercesc_ver }} | grep -o ${maj_min_rev})" + sundials_ver="$(echo ${{ github.event.inputs.sundials_ver }} | grep -o ${maj_min_rev})" + boost_ver="$(echo ${{ github.event.inputs.boost_ver }} | grep -o ${maj_min_rev})" + vtk_ver="$(echo ${{ github.event.inputs.vtk_ver }} | grep -o ${maj_min})" + petsc_ver="$(echo ${{ github.event.inputs.petsc_ver }} | grep -o ${maj_min_rev})" + hdf5_ver="$(echo ${{ github.event.inputs.hdf5_ver }} | grep -o ${maj_min_rev})" grep "${xsd_ver}" buildinfo grep "${xercesc_ver}" buildinfo @@ -134,4 +180,4 @@ jobs: grep "${vtk_ver}" buildinfo grep "${petsc_ver}" buildinfo grep "${hdf5_ver}" buildinfo - shell: bash + working-directory: chaste-build-dir From 5b492b4ddea5155ca938f0f5e3b0d0109e19bb17 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 16:08:15 +0100 Subject: [PATCH 07/29] Build all in ubuntu-tests --- .github/workflows/ubuntu-tests.yml | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ubuntu-tests.yml b/.github/workflows/ubuntu-tests.yml index bbd1789..252b9a8 100644 --- a/.github/workflows/ubuntu-tests.yml +++ b/.github/workflows/ubuntu-tests.yml @@ -144,11 +144,12 @@ jobs: - name: cmake configure run: | source init.sh - cmake .. \ + cmake \ -DBoost_NO_BOOST_CMAKE=ON \ -DBoost_NO_SYSTEM_PATHS=ON \ -DBOOST_ROOT=${BOOST_ROOT} \ - -DCMAKE_BUILD_TYPE=Release + -DCMAKE_BUILD_TYPE=Release \ + ../Chaste working-directory: chaste-build-dir - name: compile build info @@ -162,16 +163,16 @@ jobs: run: | sed -i.bak 's/"//g' buildinfo # removes quotes from old sundials versions - maj_min_rev='^[0-9]\+\.[0-9]\+\.[0-9]\+' - maj_min='^[0-9]\+\.[0-9]\+' + major_minor_patch='^[0-9]\+\.[0-9]\+\.[0-9]\+' + major_minor='^[0-9]\+\.[0-9]\+' - xsd_ver="$(echo ${{ github.event.inputs.xsd_ver }} | grep -o ${maj_min_rev})" - xercesc_ver="$(echo ${{ github.event.inputs.xercesc_ver }} | grep -o ${maj_min_rev})" - sundials_ver="$(echo ${{ github.event.inputs.sundials_ver }} | grep -o ${maj_min_rev})" - boost_ver="$(echo ${{ github.event.inputs.boost_ver }} | grep -o ${maj_min_rev})" - vtk_ver="$(echo ${{ github.event.inputs.vtk_ver }} | grep -o ${maj_min})" - petsc_ver="$(echo ${{ github.event.inputs.petsc_ver }} | grep -o ${maj_min_rev})" - hdf5_ver="$(echo ${{ github.event.inputs.hdf5_ver }} | grep -o ${maj_min_rev})" + boost_ver="$(echo ${{ github.event.inputs.boost_ver }} | grep -o ${major_minor_patch})" + hdf5_ver="$(echo ${{ github.event.inputs.hdf5_ver }} | grep -o ${major_minor_patch})" + petsc_ver="$(echo ${{ github.event.inputs.petsc_ver }} | grep -o ${major_minor_patch})" + sundials_ver="$(echo ${{ github.event.inputs.sundials_ver }} | grep -o ${major_minor_patch})" + vtk_ver="$(echo ${{ github.event.inputs.vtk_ver }} | grep -o ${major_minor})" + xercesc_ver="$(echo ${{ github.event.inputs.xercesc_ver }} | grep -o ${major_minor_patch})" + xsd_ver="$(echo ${{ github.event.inputs.xsd_ver }} | grep -o ${major_minor_patch})" grep "${xsd_ver}" buildinfo grep "${xercesc_ver}" buildinfo @@ -181,3 +182,9 @@ jobs: grep "${petsc_ver}" buildinfo grep "${hdf5_ver}" buildinfo working-directory: chaste-build-dir + + - name: build all + run: | + source init.sh + cmake --build . --parallel $(nproc) --target all + working-directory: chaste-build-dir From a04ba85848fc52de0a69a5448e59d66f96fa4c58 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 16:39:02 +0100 Subject: [PATCH 08/29] Minimize os setup --- scripts/setup_ubuntu1804.sh | 62 ++++++++++++++++++------------------- scripts/setup_ubuntu2004.sh | 58 +++++++++++++++++----------------- scripts/setup_ubuntu2204.sh | 3 ++ 3 files changed, 62 insertions(+), 61 deletions(-) diff --git a/scripts/setup_ubuntu1804.sh b/scripts/setup_ubuntu1804.sh index 213b088..8f18ba2 100755 --- a/scripts/setup_ubuntu1804.sh +++ b/scripts/setup_ubuntu1804.sh @@ -15,45 +15,43 @@ # eclipse-egit, libsvn-java, subversion, git-svn, gnuplot, paraview # APT-Sources: https://chaste.github.io/ubuntu bionic/ Packages -export DEBIAN_FRONTEND=noninteractive - # https://chaste.github.io/docs/installguides/ubuntu-package/ -echo "deb https://chaste.github.io/ubuntu bionic/" > /etc/apt/sources.list.d/chaste.list -apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 422C4D99 + +export DEBIAN_FRONTEND=noninteractive apt-get update && \ apt-get install -y --no-install-recommends \ - chaste-dependencies \ - git \ - valgrind \ - libpetsc3.7.7-dbg \ - libfltk1.1 \ - hdf5-tools \ - cmake-curses-gui \ - libgoogle-perftools-dev \ - lcov \ - doxygen \ - graphviz \ - gnuplot \ - paraview \ - mencoder \ - python3 \ - python3-venv \ - python3-dev \ - python3-pip \ - python2.7 \ - libffi-dev \ - tcl \ - environment-modules - -# https://bugs.launchpad.net/ubuntu/+source/vtk7/+bug/1878103 -# https://github.com/Chaste/chaste-docker/blob/4dd5a4819716c3defa0bfb5145bfa902bf07ecf4/Dockerfile#L89 -update-alternatives --install /usr/bin/vtk vtk /usr/bin/vtk7 10 - + cmake \ + doxygen \ + environment-modules \ + g++ \ + git \ + lcov \ + make \ + python2.7 \ + python3 \ + python3-dev \ + python3-pip \ + python3-venv \ + tcl + +# Install OpenGL for VTK +# https://discourse.vtk.org/t/trouble-installing-vtk-on-ubuntu/5148 +apt-get install -y --no-install-recommends \ + freeglut3 \ + freeglut3-dev \ + libgl1-mesa-dev \ + libgl1-mesa-glx \ + libglew2.0 \ + libglew-dev \ + libglu1-mesa \ + libglu1-mesa-dev + +# Set default `python` to Python 3 update-alternatives --install /usr/local/bin/python python /usr/bin/python3 10 update-alternatives --install /usr/local/bin/pip pip /usr/bin/pip3 10 +# Python 2 is needed to configure PETSc < 3.11.x update-alternatives --install /usr/local/bin/python2 python2 /usr/bin/python2.7 5 pip install --upgrade pip -pip install texttest diff --git a/scripts/setup_ubuntu2004.sh b/scripts/setup_ubuntu2004.sh index 766bdef..d4373f0 100755 --- a/scripts/setup_ubuntu2004.sh +++ b/scripts/setup_ubuntu2004.sh @@ -13,42 +13,42 @@ # gnuplot, paraview # APT-Sources: https://chaste.github.io/ubuntu focal/ Packages -export DEBIAN_FRONTEND=noninteractive - # https://chaste.github.io/docs/installguides/ubuntu-package/ -echo "deb https://chaste.github.io/ubuntu focal/" > /etc/apt/sources.list.d/chaste.list -apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 422C4D99 + +export DEBIAN_FRONTEND=noninteractive apt-get update && \ apt-get install -y --no-install-recommends \ - chaste-dependencies \ - git \ - valgrind \ - libpetsc-real3.12-dbg \ - libfltk1.1 \ - hdf5-tools \ - cmake-curses-gui \ - libgoogle-perftools-dev \ - lcov \ - doxygen \ - graphviz \ - gnuplot \ - paraview \ - mencoder \ - python3-dev \ - python3-pip \ - python2.7 \ - libffi-dev \ - environment-modules - -# https://bugs.launchpad.net/ubuntu/+source/vtk7/+bug/1878103 -# https://github.com/Chaste/chaste-docker/blob/4dd5a4819716c3defa0bfb5145bfa902bf07ecf4/Dockerfile#L89 -update-alternatives --install /usr/bin/vtk vtk /usr/bin/vtk7 10 - + cmake \ + doxygen \ + environment-modules \ + g++ \ + git \ + lcov \ + make \ + python2.7 \ + python3 \ + python3-dev \ + python3-pip \ + python3-venv + +# Install OpenGL for VTK +# https://discourse.vtk.org/t/trouble-installing-vtk-on-ubuntu/5148 +apt-get install -y --no-install-recommends \ + freeglut3 \ + freeglut3-dev \ + libgl1-mesa-dev \ + libgl1-mesa-glx \ + libglew2.1 \ + libglew-dev \ + libglu1-mesa \ + libglu1-mesa-dev + +# Set default `python` to Python 3 update-alternatives --install /usr/local/bin/python python /usr/bin/python3 10 update-alternatives --install /usr/local/bin/pip pip /usr/bin/pip3 10 +# Python 2 is needed to configure PETSc < 3.11.x update-alternatives --install /usr/local/bin/python2 python2 /usr/bin/python2.7 5 pip install --upgrade pip -pip install texttest diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index 1906a66..c4cdfff 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -20,6 +20,7 @@ export DEBIAN_FRONTEND=noninteractive apt-get update && \ apt-get install -y --no-install-recommends \ cmake \ + doxygen \ environment-modules \ g++ \ git \ @@ -43,9 +44,11 @@ apt-get install -y --no-install-recommends \ libglu1-mesa \ libglu1-mesa-dev +# Set default `python` to Python 3 update-alternatives --install /usr/local/bin/python python /usr/bin/python3 10 update-alternatives --install /usr/local/bin/pip pip /usr/bin/pip3 10 +# Python 2 is needed to configure PETSc < 3.11.x update-alternatives --install /usr/local/bin/python2 python2 /usr/bin/python2.7 5 pip install --upgrade pip From cdb5d84db8abcc3ef6ab358aa66251ad492f633a Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 17:04:58 +0100 Subject: [PATCH 09/29] Update docker-release workflow --- .github/workflows/docker-release.yml | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index bf64f50..5aa9432 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -11,10 +11,15 @@ jobs: fail-fast: false matrix: include: - - base: focal - tags: chaste/runner:focal, chaste/runner:latest - - base: jammy - tags: chaste/runner:jammy + - tags: | + chaste/runner:jammy + chaste/runner:latest + build-args: | + BASE=jammy + - tags: | + chaste/runner:focal + build-args: | + BASE=focal steps: - name: Checkout @@ -38,18 +43,21 @@ jobs: context: . pull: true load: true - build-args: BASE=${{ matrix.base }} tags: ${{ matrix.tags }} + build-args: ${{ matrix.build-args }} - name: Test image run: | - docker run --rm --entrypoint /bin/bash chaste/runner:${{ matrix.base }} - + tags=( ${{ matrix.tags }} ) + for tag in "${tags[@]}"; do + docker run --rm --entrypoint /bin/bash ${tag} + done + - name: Build and push uses: docker/build-push-action@v4 with: context: . pull: true push: true - build-args: BASE=${{ matrix.base }} tags: ${{ matrix.tags }} + build-args: ${{ matrix.build-args }} From 912f78b453e383dce48adc3be5982eff02245e2e Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 17:10:01 +0100 Subject: [PATCH 10/29] Add docker-test image --- .github/workflows/docker-test.yml | 65 +++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 .github/workflows/docker-test.yml diff --git a/.github/workflows/docker-test.yml b/.github/workflows/docker-test.yml new file mode 100644 index 0000000..fb6bca1 --- /dev/null +++ b/.github/workflows/docker-test.yml @@ -0,0 +1,65 @@ +name: docker-test + +on: + workflow_dispatch: + +jobs: + docker: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + include: + - tags: | + chaste/runner:test + build-args: | + BASE=jammy + XSD=4.0.0 + XERCESC=3.2.4 + SUNDIALS=5.8.0 + BOOST=1.74.0 + VTK=9.1.0 + PETSC=3.15.5 + HDF5=1.10.8 + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and export to Docker + uses: docker/build-push-action@v4 + with: + context: . + pull: true + load: true + tags: ${{ matrix.tags }} + build-args: ${{ matrix.build-args }} + + - name: Test image + run: | + tags=( ${{ matrix.tags }} ) + for tag in "${tags[@]}"; do + docker run --rm --entrypoint /bin/bash ${tag} + done + + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: . + pull: true + push: true + tags: ${{ matrix.tags }} + build-args: ${{ matrix.build-args }} From 504e3caf430a87b03f098427dc872165712e28d5 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 17:12:36 +0100 Subject: [PATCH 11/29] Remove excess workflows --- .github/workflows/manual-tests.yml | 145 ------------ .github/workflows/version-tests.yml | 327 ---------------------------- 2 files changed, 472 deletions(-) delete mode 100644 .github/workflows/manual-tests.yml delete mode 100644 .github/workflows/version-tests.yml diff --git a/.github/workflows/manual-tests.yml b/.github/workflows/manual-tests.yml deleted file mode 100644 index 618f9d0..0000000 --- a/.github/workflows/manual-tests.yml +++ /dev/null @@ -1,145 +0,0 @@ -name: manual-tests - -on: - workflow_dispatch: - inputs: - chaste_branch: - description: 'Chaste branch' - required: true - type: string - default: 'develop' - - test_suites: - description: 'Test suites' - required: true - type: string - default: 'Continuous,Nightly,Weekly' - - xsd_ver: - description: 'XSD version' - required: true - type: choice - options: - - '4.0.0' - default: '4.0.0' - - xercesc_ver: - description: 'Xerces-C version' - required: true - type: choice - options: - - '3.2.2' - - '3.2.3' - - '3.2.3' - - '3.2.4' - default: '3.2.3' - - sundials_ver: - description: 'Sundials version' - required: false - type: choice - options: - - '' - - '3.1.2' - - '3.2.1' - - '4.0.2' - - '4.1.0' - - '5.0.0' - - '5.1.0' - - '5.2.0' - - '5.4.0' - - '5.5.0' - - '5.6.1' - - '5.7.0' - - '5.8.0' - - '6.0.0' - - '6.1.1' - - '6.2.0' - - '6.3.0' - - '6.4.1' - - '6.5.0' - default: '5.8.0' - - boost_ver: - description: 'Boost version' - required: true - type: choice - options: - - '1.67.0' - - '1.68.0' - - '1.69.0' - - '1.70.0' - - '1.71.0' - - '1.72.0' - - '1.73.0' - - '1.74.0' - - '1.75.0' - - '1.76.0' - - '1.77.0' - - '1.78.0' - - '1.79.0' - - '1.80.0' - - '1.81.0' - default: '1.74.0' - - vtk_ver: - description: 'VTK version' - required: false - type: choice - options: - - '' - - '6.3.0' - - '7.1.0' - - '8.1.0' - - '8.2.0' - - '9.1.0' - - '9.2.0' - default: '7.1.0' - - petsc_hdf5_ver: - description: 'PETSc + HDF5 versions' - required: true - type: choice - options: - - '3.12.4 + 1.10.5' - - '3.13.6 + 1.10.6' - - '3.14.6 + 1.10.7' - - '3.15.5 + 1.10.8' - default: '3.12.4 + 1.10.5' - -jobs: - versions: - runs-on: [self-hosted] - timeout-minutes: 60 - - defaults: - run: - shell: bash - - outputs: - petsc_ver: ${{ steps.parse.outputs.petsc_ver }} - hdf5_ver: ${{ steps.parse.outputs.hdf5_ver }} - - steps: - - id: parse - run: | - petsc_hdf5_ver=($(echo "${{ github.event.inputs.petsc_hdf5_ver }}" | tr '+' '\n')) - petsc_ver=${petsc_hdf5_ver[0]} - hdf5_ver=${petsc_hdf5_ver[1]} - echo "petsc_ver=${petsc_ver}" >> ${GITHUB_OUTPUT} - echo "hdf5_ver=${hdf5_ver}" >> ${GITHUB_OUTPUT} - - build-and-test: - needs: versions - uses: ./.github/workflows/version-tests.yml - with: - chaste_branch: ${{ github.event.inputs.chaste_branch }} - test_suites: ${{ github.event.inputs.test_suites }} - xsd_ver: ${{ github.event.inputs.xsd_ver }} - xercesc_ver: ${{ github.event.inputs.xercesc_ver }} - sundials_ver: ${{ github.event.inputs.sundials_ver }} - boost_ver: ${{ github.event.inputs.boost_ver }} - vtk_ver: ${{ github.event.inputs.vtk_ver }} - petsc_ver: ${{ needs.versions.outputs.petsc_ver }} - petsc_arch: linux-gnu - hdf5_ver: ${{ needs.versions.outputs.hdf5_ver }} diff --git a/.github/workflows/version-tests.yml b/.github/workflows/version-tests.yml deleted file mode 100644 index fdae059..0000000 --- a/.github/workflows/version-tests.yml +++ /dev/null @@ -1,327 +0,0 @@ -name: version-tests - -on: - workflow_call: - inputs: - chaste_branch: - description: 'Chaste branch' - required: true - type: string - default: 'develop' - - test_suites: - description: 'Test suites' - required: true - type: string - default: 'Continuous,Nightly,Weekly' - - xsd_ver: - description: 'XSD version' - required: true - type: string - default: '4.0.0' - - xercesc_ver: - description: 'Xerces-C version' - required: true - type: string - default: '3.2.3' - - sundials_ver: - description: 'Sundials version' - required: false - type: string - default: '5.8.0' - - boost_ver: - description: 'Boost version' - required: true - type: string - default: '1.74.0' - - vtk_ver: - description: 'VTK version' - required: false - type: string - default: '7.1.0' - - petsc_ver: - description: 'PETSc version' - required: true - type: string - default: '3.12.4' - - petsc_arch: - description: 'PETSc arch' - required: true - type: string - default: 'linux-gnu' - - hdf5_ver: - description: 'HDF5 version' - required: true - type: string - default: '1.10.5' - -jobs: - build-and-test: - runs-on: [self-hosted] - timeout-minutes: 360 - - defaults: - run: - shell: bash - - steps: - - name: Set environment - run: | - test_suites=($(echo "${{ inputs.test_suites }}" | tr '[:upper:]' '[:lower:]' | tr ',' '\n')) - - run_continuous=0; - run_parallel=0 - run_nightly=0 - run_weekly=0 - - for suite in "${test_suites[@]}"; do - case $suite in - continuous) run_continuous=1;; - nightly) run_nightly=1;; - weekly) run_weekly=1;; - *) echo "Unknown test suite: $suite" 1>&2; exit 1;; - esac - done - - echo "run_continuous=${run_continuous}" >> ${GITHUB_ENV} - echo "run_nightly=${run_nightly}" >> ${GITHUB_ENV} - echo "run_weekly=${run_weekly}" >> ${GITHUB_ENV} - - modules_dir="${MODULES_DIR:-${HOME}/modules}" - echo "modules_dir=${modules_dir}" >> ${GITHUB_ENV} - mkdir -p ${modules_dir}/modulefiles - - echo "parallel=$(( $(nproc) < 12 ? $(nproc) : 12 ))" >> ${GITHUB_ENV} - echo "niceness=10" >> ${GITHUB_ENV} - - testoutput="${HOME}/testoutput/$(date +'%Y%m%d%H%M%S')" - echo "CHASTE_TEST_OUTPUT=${testoutput}" >> ${GITHUB_ENV} - mkdir -p ${testoutput} - - - name: Create module loading script - run: | - echo "source /etc/profile.d/modules.sh" > modulesinit.sh - echo "module use ${{ env.modules_dir }}/modulefiles" >> modulesinit.sh - echo "module purge" >> modulesinit.sh - - - name: Setup xsd - run: | - source modulesinit.sh - err=0 && module test xsd/${{ inputs.xsd_ver }} || err=$? - if [ $err -ne 0 ]; then - nice -n ${{ env.niceness }} install_xsd.sh \ - --version=${{ inputs.xsd_ver }} \ - --modules-dir=${{ env.modules_dir }} - module test xsd/${{ inputs.xsd_ver }} - fi - - - name: Setup xercesc - run: | - source modulesinit.sh - err=0 && module test xercesc/${{ inputs.xercesc_ver }} || err=$? - if [ $err -ne 0 ]; then - nice -n ${{ env.niceness }} install_xercesc.sh \ - --version=${{ inputs.xercesc_ver }} \ - --modules-dir=${{ env.modules_dir }} \ - --parallel=${{ env.parallel }} - module test xercesc/${{ inputs.xercesc_ver }} - fi - - - name: Setup sundials - run: | - if [ -n "${{ inputs.sundials_ver }}" ]; then - source modulesinit.sh - err=0 && module test sundials/${{ inputs.sundials_ver }} || err=$? - if [ $err -ne 0 ]; then - nice -n ${{ env.niceness }} install_sundials.sh \ - --version=${{ inputs.sundials_ver }} \ - --modules-dir=${{ env.modules_dir }} \ - --parallel=${{ env.parallel }} - module test sundials/${{ inputs.sundials_ver }} - fi - fi - - - name: Setup boost - run: | - source modulesinit.sh - err=0 && module test boost/${{ inputs.boost_ver }} || err=$? - if [ $err -ne 0 ]; then - nice -n ${{ env.niceness }} install_boost.sh \ - --version=${{ inputs.boost_ver }} \ - --modules-dir=${{ env.modules_dir }} \ - --parallel=${{ env.parallel }} - module test boost/${{ inputs.boost_ver }} - fi - - - name: Setup vtk - run: | - if [ -n "${{ inputs.vtk_ver }}" ]; then - source modulesinit.sh - err=0 && module test vtk/${{ inputs.vtk_ver }} || err=$? - if [ $err -ne 0 ]; then - nice -n ${{ env.niceness }} install_vtk.sh \ - --version=${{ inputs.vtk_ver }} \ - --modules-dir=${{ env.modules_dir }} \ - --parallel=${{ env.parallel }} - module test vtk/${{ inputs.vtk_ver }} - fi - fi - - - name: Setup petsc_hdf5 - run: | - source modulesinit.sh - err=0 && module test petsc_hdf5/${{ inputs.petsc_ver }}_${{ inputs.hdf5_ver }}/${{ inputs.petsc_arch }} || err=$? - if [ $err -ne 0 ]; then - nice -n ${{ env.niceness }} install_petsc_hdf5.sh \ - --petsc-version=${{ inputs.petsc_ver }} \ - --hdf5-version=${{ inputs.hdf5_ver }} \ - --petsc-arch=${{ inputs.petsc_arch }} \ - --modules-dir=${{ env.modules_dir }} \ - --parallel=${{ env.parallel }} - module test petsc_hdf5/${{ inputs.petsc_ver }}_${{ inputs.hdf5_ver }}/${{ inputs.petsc_arch }} - fi - - - name: Add versions to module loading script - run: | - echo "module load xsd/${{ inputs.xsd_ver }}" >> modulesinit.sh - echo "module load xercesc/${{ inputs.xercesc_ver }}" >> modulesinit.sh - echo "module load boost/${{ inputs.boost_ver }}" >> modulesinit.sh - echo "module load petsc_hdf5/${{ inputs.petsc_ver }}_${{ inputs.hdf5_ver }}/${{ inputs.petsc_arch }}" >> modulesinit.sh - - if [ -n "${{ inputs.sundials_ver }}" ]; then - echo "module load sundials/${{ inputs.sundials_ver }}" >> modulesinit.sh - fi - - if [ -n "${{ inputs.vtk_ver }}" ]; then - echo "module load vtk/${{ inputs.vtk_ver }}" >> modulesinit.sh - fi - - - name: Checkout Chaste - uses: actions/checkout@v3 - with: - repository: Chaste/Chaste - path: Chaste - ref: ${{ inputs.chaste_branch }} - submodules: recursive - - - name: Configure Chaste - run: | - source modulesinit.sh - - if [ -z "${{ inputs.sundials_ver }}" ]; then - use_cvode="OFF" - else - use_cvode="ON" - fi - - if [ -z "${{ inputs.vtk_ver }}" ]; then - use_vtk="OFF" - else - use_vtk="ON" - fi - - mkdir -p Chaste/build - cd Chaste/build - nice -n ${{ env.niceness }} cmake \ - -DBoost_NO_BOOST_CMAKE=ON \ - -DBoost_NO_SYSTEM_PATHS=ON \ - -DBOOST_ROOT=${BOOST_ROOT} \ - -DChaste_USE_CVODE=${use_cvode} \ - -DChaste_USE_VTK=${use_vtk} \ - -DCMAKE_PREFIX_PATH="${XERCESC_ROOT};${XSD_ROOT};${SUNDIALS_ROOT};${VTK_ROOT}" \ - -DCMAKE_BUILD_TYPE=Release \ - .. - - - name: Compile Chaste build info - run: | - source modulesinit.sh - cd Chaste/build - nice -n ${{ env.niceness }} cmake --build . --parallel ${{ env.parallel }} --target TestChasteBuildInfo - nice -n ${{ env.niceness }} ctest -V -R TestChasteBuildInfo --output-on-failure | tee buildinfo - - - name: Verify dependency versions - run: | - cd Chaste/build - sed -i.bak 's/"//g' buildinfo # removes quotes from old sundials versions - - maj_min_rev='^[0-9]\+\.[0-9]\+\.[0-9]\+' - maj_min='^[0-9]\+\.[0-9]\+' - - xsd_ver="$(echo ${{ inputs.xsd_ver }} | grep -o ${maj_min_rev})" - grep "${xsd_ver}" buildinfo - - xercesc_ver="$(echo ${{ inputs.xercesc_ver }} | grep -o ${maj_min_rev})" - grep "${xercesc_ver}" buildinfo - - if [ -n "${{ inputs.sundials_ver }}" ]; then - sundials_ver="$(echo ${{ inputs.sundials_ver }} | grep -o ${maj_min_rev})" - grep "${sundials_ver}" buildinfo - fi - - boost_ver="$(echo ${{ inputs.boost_ver }} | grep -o ${maj_min_rev})" - grep "${boost_ver}" buildinfo - - if [ -n "${{ inputs.vtk_ver }}" ]; then - vtk_ver="$(echo ${{ inputs.vtk_ver }} | grep -o ${maj_min})" - grep "${vtk_ver}" buildinfo - fi - - petsc_ver="$(echo ${{ inputs.petsc_ver }} | grep -o ${maj_min_rev})" - grep "${petsc_ver}" buildinfo - - hdf5_ver="$(echo ${{ inputs.hdf5_ver }} | grep -o ${maj_min_rev})" - grep "${hdf5_ver}" buildinfo - - - name: Build Continuous test pack - if: ${{ env.run_continuous == '1' }} - run: | - source modulesinit.sh - cd Chaste/build - nice -n ${{ env.niceness }} cmake --build . --parallel ${{ env.parallel }} --target Continuous - - - name: Run Continuous test pack - if: ${{ env.run_continuous == '1' }} - run: | - source modulesinit.sh - cd Chaste/build - nice -n ${{ env.niceness }} ctest -j ${{ env.parallel }} -L Continuous --output-on-failure - - - name: Build Nightly test pack - if: ${{ env.run_nightly == '1' }} - run: | - source modulesinit.sh - cd Chaste/build - nice -n ${{ env.niceness }} cmake --build . --parallel ${{ env.parallel }} --target Nightly - - - name: Run Nightly test pack - if: ${{ env.run_nightly == '1' }} - run: | - source modulesinit.sh - cd Chaste/build - nice -n ${{ env.niceness }} ctest -j ${{ env.parallel }} -L Nightly --output-on-failure - - - name: Build Weekly test pack - if: ${{ env.run_weekly == '1' }} - run: | - source modulesinit.sh - cd Chaste/build - nice -n ${{ env.niceness }} cmake --build . --parallel ${{ env.parallel }} --target Weekly - - - name: Run Weekly test pack - if: ${{ env.run_weekly == '1' }} - run: | - source modulesinit.sh - cd Chaste/build - nice -n ${{ env.niceness }} ctest -j ${{ env.parallel }} -L Weekly --output-on-failure - - - name: Cleanup - if: always() - run: rm -rf ${{ env.modules_dir }}/src/* From 7d98bcc1d65ccd208775a4dfa4e9382265fe0b3f Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 19:00:52 +0100 Subject: [PATCH 12/29] Update vtk dependencies --- scripts/setup_ubuntu2204.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index c4cdfff..8391634 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -24,6 +24,7 @@ apt-get install -y --no-install-recommends \ environment-modules \ g++ \ git \ + graphviz \ lcov \ make \ python2.7 \ From 996f1e1e033d917c6df8e88ae8854c1a02db59d7 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 19:02:06 +0100 Subject: [PATCH 13/29] Update vtk dependencies for 22.04 --- scripts/setup_ubuntu2204.sh | 83 +++++++++++++++++++++++++++++++++---- 1 file changed, 74 insertions(+), 9 deletions(-) diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index 8391634..8e0e38a 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -33,17 +33,82 @@ apt-get install -y --no-install-recommends \ python3-pip \ python3-venv -# Install OpenGL for VTK -# https://discourse.vtk.org/t/trouble-installing-vtk-on-ubuntu/5148 +# Install VTK dependencies apt-get install -y --no-install-recommends \ - freeglut3 \ - freeglut3-dev \ - libgl1-mesa-dev \ - libgl1-mesa-glx \ - libglew2.2 \ + libavcodec-dev \ + libavcodec58 \ + libavformat-dev \ + libavformat58 \ + libavutil-dev \ + libavutil56 \ + libdouble-conversion-dev \ + libdouble-conversion3 \ + libeigen3-dev \ + libexpat-dev \ + libexpat1 \ + libfontconfig1 \ + libfreetype6 \ + libfreetype6-dev \ + libgdal-dev \ + libgdal30 \ + libgl-dev \ + libgl1 \ + libgl2ps-dev \ + libgl2ps1.4 \ libglew-dev \ - libglu1-mesa \ - libglu1-mesa-dev + libglew2.2 \ + libglu-dev \ + libglu1-mesa-dev \ + libglx0 \ + libjpeg-dev \ + libjpeg8 \ + libjsoncpp-dev \ + libjsoncpp25 \ + liblz4-1 \ + liblz4-dev \ + liblzma5 \ + libmysqlclient-dev \ + libmysqlclient21 \ + libnetcdf-c++4 \ + libnetcdf-cxx-legacy-dev \ + libnetcdf-dev \ + libnetcdf19 \ + libodbc2 \ + libogg-dev \ + libogg0 \ + libopengl0 \ + libpng-dev \ + libpng16-16 \ + libpq-dev \ + libpq5 \ + libproj-dev \ + libproj22 \ + libsqlite3-0 \ + libsqlite3-dev \ + libswscale-dev \ + libswscale5 \ + libtbb-dev \ + libtbb12 \ + libtcl8.6 \ + libtheora-dev \ + libtheora0 \ + libtiff-dev \ + libtiff5 \ + libtk8.6 \ + libutfcpp-dev \ + libx11-6 \ + libx11-dev \ + libxft-dev \ + libxml2 \ + libxml2-dev \ + libxss-dev \ + libxt-dev \ + libxt6 \ + tcl-dev \ + tk-dev \ + x11proto-core-dev \ + zlib1g \ + zlib1g-dev # Set default `python` to Python 3 update-alternatives --install /usr/local/bin/python python /usr/bin/python3 10 From 3bf4b450e6511507f23d0f2f3af99a9e6f37103c Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 19:15:14 +0100 Subject: [PATCH 14/29] VTK use system libs --- scripts/install_vtk.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/scripts/install_vtk.sh b/scripts/install_vtk.sh index 1c6428b..d8a8f83 100755 --- a/scripts/install_vtk.sh +++ b/scripts/install_vtk.sh @@ -93,14 +93,22 @@ mkdir -p ${install_dir} mkdir -p ${src_dir}-build cd ${src_dir}-build cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=${install_dir} \ + -DCMAKE_INSTALL_RPATH=${install_dir}/lib/vtk-${major}.${minor} \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_EXAMPLES=OFF \ -DBUILD_TESTING=OFF \ -DBUILD_DOCUMENTATION=OFF \ -DVTK_INSTALL_NO_DOCUMENTATION=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${install_dir} \ - -DCMAKE_INSTALL_RPATH=${install_dir}/lib/vtk-${major}.${minor} \ + -DVTK_USE_SYSTEM_EXPAT=ON \ + -DVTK_USE_SYSTEM_FREETYPE=ON \ + -DVTK_USE_SYSTEM_JPEG=ON \ + -DVTK_USE_SYSTEM_JSONCPP=ON \ + -DVTK_USE_SYSTEM_LIBXML2=ON \ + -DVTK_USE_SYSTEM_PNG=ON \ + -DVTK_USE_SYSTEM_TIFF=ON \ + -DVTK_USE_SYSTEM_ZLIB=ON \ ${src_dir} && \ make -j ${parallel} && \ make install From f9e45d2471493d88c1838094178745a40ad78416 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 19:31:32 +0100 Subject: [PATCH 15/29] Add freeglut for vtk --- scripts/setup_ubuntu2204.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index 8e0e38a..6e5a312 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -35,6 +35,8 @@ apt-get install -y --no-install-recommends \ # Install VTK dependencies apt-get install -y --no-install-recommends \ + freeglut3 \ + freeglut3-dev \ libavcodec-dev \ libavcodec58 \ libavformat-dev \ From aae7ede61209999ee2e628e9d3c0cfe30349def0 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 17 Aug 2023 21:14:45 +0100 Subject: [PATCH 16/29] Update vtk dependencies --- scripts/install_vtk.sh | 35 ++++++++++++++++++++++++----------- scripts/setup_ubuntu2204.sh | 4 ++++ 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/scripts/install_vtk.sh b/scripts/install_vtk.sh index d8a8f83..02ff78e 100755 --- a/scripts/install_vtk.sh +++ b/scripts/install_vtk.sh @@ -97,18 +97,31 @@ cmake \ -DCMAKE_INSTALL_PREFIX=${install_dir} \ -DCMAKE_INSTALL_RPATH=${install_dir}/lib/vtk-${major}.${minor} \ -DBUILD_SHARED_LIBS=ON \ - -DBUILD_EXAMPLES=OFF \ - -DBUILD_TESTING=OFF \ - -DBUILD_DOCUMENTATION=OFF \ + -DVTK_BUILD_EXAMPLES=OFF \ + -DVTK_BUILD_TESTING=OFF \ + -DVTK_BUILD_DOCUMENTATION=OFF \ -DVTK_INSTALL_NO_DOCUMENTATION=ON \ - -DVTK_USE_SYSTEM_EXPAT=ON \ - -DVTK_USE_SYSTEM_FREETYPE=ON \ - -DVTK_USE_SYSTEM_JPEG=ON \ - -DVTK_USE_SYSTEM_JSONCPP=ON \ - -DVTK_USE_SYSTEM_LIBXML2=ON \ - -DVTK_USE_SYSTEM_PNG=ON \ - -DVTK_USE_SYSTEM_TIFF=ON \ - -DVTK_USE_SYSTEM_ZLIB=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_fmt=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_glew=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_jsoncpp=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_libproj=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_lz4=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_lzma=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_ogg=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_png=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_sqlite=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_theora=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_utf8=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON \ ${src_dir} && \ make -j ${parallel} && \ make install diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index 6e5a312..9e21dc5 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -48,6 +48,8 @@ apt-get install -y --no-install-recommends \ libeigen3-dev \ libexpat-dev \ libexpat1 \ + libfmt-dev \ + libfmt8 \ libfontconfig1 \ libfreetype6 \ libfreetype6-dev \ @@ -100,6 +102,8 @@ apt-get install -y --no-install-recommends \ libutfcpp-dev \ libx11-6 \ libx11-dev \ + libxcursor-dev \ + libxcursor1 \ libxft-dev \ libxml2 \ libxml2-dev \ From db557c601208811c122bb17ef596016760ab639d Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 18 Aug 2023 10:00:01 +0100 Subject: [PATCH 17/29] Move all apt-get to os scripts --- Dockerfile | 16 +----- scripts/setup_ubuntu1804.sh | 104 ++++++++++++++++++++++++++++++++---- scripts/setup_ubuntu2004.sh | 100 +++++++++++++++++++++++++++++++--- scripts/setup_ubuntu2204.sh | 18 +++++-- 4 files changed, 203 insertions(+), 35 deletions(-) diff --git a/Dockerfile b/Dockerfile index f63bcb9..24913f9 100755 --- a/Dockerfile +++ b/Dockerfile @@ -25,21 +25,9 @@ ENV MODULES_DIR="${DEFAULT_HOME}/modules" COPY scripts/ /usr/local/bin/ RUN useradd -r -m -d ${DEFAULT_HOME} -s /bin/bash ${DEFAULT_USER} && \ - export DEBIAN_FRONTEND=noninteractive && \ - apt-get update && \ - apt-get install -y --no-install-recommends \ - apt-utils \ - apt-transport-https \ - ca-certificates \ - gnupg \ - openssl \ - wget \ - curl \ - rsync \ - jq && \ . /etc/os-release && \ - os_num="$(echo ${VERSION_ID} | sed 's/\.//')" && \ - setup_ubuntu${os_num}.sh && \ + os_id="$(echo ${VERSION_ID} | sed 's/\.//')" && \ + setup_ubuntu${os_id}.sh && \ runner_install.sh --install_dir="/tmp/tmp-runner" && \ /tmp/tmp-runner/bin/installdependencies.sh && \ mkdir -p ${MODULES_DIR}/src && \ diff --git a/scripts/setup_ubuntu1804.sh b/scripts/setup_ubuntu1804.sh index 8f18ba2..be3e37b 100755 --- a/scripts/setup_ubuntu1804.sh +++ b/scripts/setup_ubuntu1804.sh @@ -19,11 +19,25 @@ export DEBIAN_FRONTEND=noninteractive +# General dependencies apt-get update && \ +apt-get install -y --no-install-recommends \ + apt-transport-https \ + apt-utils \ + ca-certificates \ + curl \ + environment-modules \ + gnupg \ + jq \ + openssl \ + rsync \ + tcl \ + wget + +# Chaste dependencies apt-get install -y --no-install-recommends \ cmake \ doxygen \ - environment-modules \ g++ \ git \ lcov \ @@ -32,20 +46,90 @@ apt-get install -y --no-install-recommends \ python3 \ python3-dev \ python3-pip \ - python3-venv \ - tcl + python3-venv -# Install OpenGL for VTK -# https://discourse.vtk.org/t/trouble-installing-vtk-on-ubuntu/5148 +# VTK dependencies apt-get install -y --no-install-recommends \ freeglut3 \ freeglut3-dev \ - libgl1-mesa-dev \ - libgl1-mesa-glx \ - libglew2.0 \ + libavcodec-dev \ + libavcodec58 \ + libavformat-dev \ + libavformat58 \ + libavutil-dev \ + libavutil56 \ + libdouble-conversion-dev \ + libdouble-conversion3 \ + libeigen3-dev \ + libexpat-dev \ + libexpat1 \ + libfmt-dev \ + libfmt8 \ + libfontconfig1 \ + libfreetype6 \ + libfreetype6-dev \ + libgdal-dev \ + libgdal30 \ + libgl-dev \ + libgl1 \ + libgl2ps-dev \ + libgl2ps1.4 \ libglew-dev \ - libglu1-mesa \ - libglu1-mesa-dev + libglew2.2 \ + libglu-dev \ + libglu1-mesa-dev \ + libglx0 \ + libjpeg-dev \ + libjpeg8 \ + libjsoncpp-dev \ + libjsoncpp25 \ + liblz4-1 \ + liblz4-dev \ + liblzma5 \ + libmysqlclient-dev \ + libmysqlclient21 \ + libnetcdf-c++4 \ + libnetcdf-cxx-legacy-dev \ + libnetcdf-dev \ + libnetcdf19 \ + libodbc2 \ + libogg-dev \ + libogg0 \ + libopengl0 \ + libpng-dev \ + libpng16-16 \ + libpq-dev \ + libpq5 \ + libproj-dev \ + libproj22 \ + libsqlite3-0 \ + libsqlite3-dev \ + libswscale-dev \ + libswscale5 \ + libtbb-dev \ + libtbb12 \ + libtcl8.6 \ + libtheora-dev \ + libtheora0 \ + libtiff-dev \ + libtiff5 \ + libtk8.6 \ + libutfcpp-dev \ + libx11-6 \ + libx11-dev \ + libxcursor-dev \ + libxcursor1 \ + libxft-dev \ + libxml2 \ + libxml2-dev \ + libxss-dev \ + libxt-dev \ + libxt6 \ + tcl-dev \ + tk-dev \ + x11proto-core-dev \ + zlib1g \ + zlib1g-dev # Set default `python` to Python 3 update-alternatives --install /usr/local/bin/python python /usr/bin/python3 10 diff --git a/scripts/setup_ubuntu2004.sh b/scripts/setup_ubuntu2004.sh index d4373f0..c6861bd 100755 --- a/scripts/setup_ubuntu2004.sh +++ b/scripts/setup_ubuntu2004.sh @@ -17,11 +17,24 @@ export DEBIAN_FRONTEND=noninteractive +# General dependencies apt-get update && \ +apt-get install -y --no-install-recommends \ + apt-transport-https \ + apt-utils \ + ca-certificates \ + curl \ + environment-modules \ + gnupg \ + jq \ + openssl \ + rsync \ + wget + +# Chaste dependencies apt-get install -y --no-install-recommends \ cmake \ doxygen \ - environment-modules \ g++ \ git \ lcov \ @@ -32,17 +45,88 @@ apt-get install -y --no-install-recommends \ python3-pip \ python3-venv -# Install OpenGL for VTK -# https://discourse.vtk.org/t/trouble-installing-vtk-on-ubuntu/5148 +# VTK dependencies apt-get install -y --no-install-recommends \ freeglut3 \ freeglut3-dev \ - libgl1-mesa-dev \ - libgl1-mesa-glx \ - libglew2.1 \ + libavcodec-dev \ + libavcodec58 \ + libavformat-dev \ + libavformat58 \ + libavutil-dev \ + libavutil56 \ + libdouble-conversion-dev \ + libdouble-conversion3 \ + libeigen3-dev \ + libexpat-dev \ + libexpat1 \ + libfmt-dev \ + libfmt8 \ + libfontconfig1 \ + libfreetype6 \ + libfreetype6-dev \ + libgdal-dev \ + libgdal30 \ + libgl-dev \ + libgl1 \ + libgl2ps-dev \ + libgl2ps1.4 \ libglew-dev \ - libglu1-mesa \ - libglu1-mesa-dev + libglew2.2 \ + libglu-dev \ + libglu1-mesa-dev \ + libglx0 \ + libjpeg-dev \ + libjpeg8 \ + libjsoncpp-dev \ + libjsoncpp25 \ + liblz4-1 \ + liblz4-dev \ + liblzma5 \ + libmysqlclient-dev \ + libmysqlclient21 \ + libnetcdf-c++4 \ + libnetcdf-cxx-legacy-dev \ + libnetcdf-dev \ + libnetcdf19 \ + libodbc2 \ + libogg-dev \ + libogg0 \ + libopengl0 \ + libpng-dev \ + libpng16-16 \ + libpq-dev \ + libpq5 \ + libproj-dev \ + libproj22 \ + libsqlite3-0 \ + libsqlite3-dev \ + libswscale-dev \ + libswscale5 \ + libtbb-dev \ + libtbb12 \ + libtcl8.6 \ + libtheora-dev \ + libtheora0 \ + libtiff-dev \ + libtiff5 \ + libtk8.6 \ + libutfcpp-dev \ + libx11-6 \ + libx11-dev \ + libxcursor-dev \ + libxcursor1 \ + libxft-dev \ + libxml2 \ + libxml2-dev \ + libxss-dev \ + libxt-dev \ + libxt6 \ + tcl-dev \ + tk-dev \ + x11proto-core-dev \ + zlib1g \ + zlib1g-dev # Set default `python` to Python 3 update-alternatives --install /usr/local/bin/python python /usr/bin/python3 10 diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index 9e21dc5..7052489 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -17,14 +17,26 @@ export DEBIAN_FRONTEND=noninteractive +# General dependencies apt-get update && \ +apt-get install -y --no-install-recommends \ + apt-transport-https \ + apt-utils \ + ca-certificates \ + curl \ + environment-modules \ + gnupg \ + jq \ + openssl \ + rsync \ + wget + +# Chaste dependencies apt-get install -y --no-install-recommends \ cmake \ doxygen \ - environment-modules \ g++ \ git \ - graphviz \ lcov \ make \ python2.7 \ @@ -33,7 +45,7 @@ apt-get install -y --no-install-recommends \ python3-pip \ python3-venv -# Install VTK dependencies +# VTK dependencies apt-get install -y --no-install-recommends \ freeglut3 \ freeglut3-dev \ From bdf6332663aa1b0155dc52c04703bdc341dc29eb Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 18 Aug 2023 10:16:29 +0100 Subject: [PATCH 18/29] Simplify dockerfile --- Dockerfile | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index 24913f9..b570e39 100755 --- a/Dockerfile +++ b/Dockerfile @@ -14,13 +14,11 @@ SHELL ["/bin/bash", "-e", "-o", "pipefail", "-c"] USER root -ENV DEFAULT_USER="runner" -ENV DEFAULT_HOME="/home/${DEFAULT_USER}" - -ENV RUNNER_DIR="${DEFAULT_HOME}/actions-runner" -ENV RUNNER_WORK_DIR="${DEFAULT_HOME}/_work" - -ENV MODULES_DIR="${DEFAULT_HOME}/modules" +ENV DEFAULT_USER="runner" \ + DEFAULT_HOME="/home/runner" \ + RUNNER_DIR="/home/runner/actions-runner" \ + RUNNER_WORK_DIR="/home/runner/_work" \ + MODULES_DIR="/home/runner/modules" COPY scripts/ /usr/local/bin/ @@ -30,11 +28,6 @@ RUN useradd -r -m -d ${DEFAULT_HOME} -s /bin/bash ${DEFAULT_USER} && \ setup_ubuntu${os_id}.sh && \ runner_install.sh --install_dir="/tmp/tmp-runner" && \ /tmp/tmp-runner/bin/installdependencies.sh && \ - mkdir -p ${MODULES_DIR}/src && \ - mkdir -p ${MODULES_DIR}/opt && \ - mkdir -p ${MODULES_DIR}/modulefiles && \ - echo "module use ${MODULES_DIR}/modulefiles" >> ${DEFAULT_HOME}/.bashrc && \ - chown -R ${DEFAULT_USER}:${DEFAULT_USER} ${MODULES_DIR} && \ apt-get -y clean && \ rm -rf /var/cache/apt && \ rm -rf /var/lib/apt/lists/* && \ @@ -45,7 +38,9 @@ USER ${DEFAULT_USER}:${DEFAULT_USER} WORKDIR ${DEFAULT_HOME} RUN source /etc/profile.d/modules.sh && \ + mkdir -p ${MODULES_DIR}/modulefiles && \ module use ${MODULES_DIR}/modulefiles && \ + echo "module use ${MODULES_DIR}/modulefiles" >> ${DEFAULT_HOME}/.bashrc && \ install_xsd.sh \ --version=${XSD} \ --modules-dir=${MODULES_DIR} && \ @@ -77,7 +72,7 @@ RUN source /etc/profile.d/modules.sh && \ --parallel=$(nproc) \ --modules-dir=${MODULES_DIR} && \ module test petsc_hdf5/${PETSC}_${HDF5}/linux-gnu && \ - rm -rf ${MODULES_DIR}/src/* && \ - rm -rf /tmp/* + rm -rf /tmp/* && \ + rm -rf ${MODULES_DIR}/src ENTRYPOINT ["docker-entrypoint.sh"] From 30ecbfcc480bd8660bf30f123629c4a132d28753 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 18 Aug 2023 12:34:42 +0100 Subject: [PATCH 19/29] Update vtk dependencies for all os --- scripts/install_vtk.sh | 2 ++ scripts/setup_ubuntu1804.sh | 25 +++++++++++++------------ scripts/setup_ubuntu2004.sh | 37 +++++++++++++++++++------------------ scripts/setup_ubuntu2204.sh | 10 ++++++---- 4 files changed, 40 insertions(+), 34 deletions(-) diff --git a/scripts/install_vtk.sh b/scripts/install_vtk.sh index 02ff78e..38d45d7 100755 --- a/scripts/install_vtk.sh +++ b/scripts/install_vtk.sh @@ -100,6 +100,8 @@ cmake \ -DVTK_BUILD_EXAMPLES=OFF \ -DVTK_BUILD_TESTING=OFF \ -DVTK_BUILD_DOCUMENTATION=OFF \ + -DVTK_GROUP_ENABLE_MPI=YES \ + -DVTK_USE_MPI=YES \ -DVTK_INSTALL_NO_DOCUMENTATION=ON \ -DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON \ -DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON \ diff --git a/scripts/setup_ubuntu1804.sh b/scripts/setup_ubuntu1804.sh index be3e37b..177a098 100755 --- a/scripts/setup_ubuntu1804.sh +++ b/scripts/setup_ubuntu1804.sh @@ -41,6 +41,8 @@ apt-get install -y --no-install-recommends \ g++ \ git \ lcov \ + libmpich12 \ + libmpich-dev \ make \ python2.7 \ python3 \ @@ -61,28 +63,27 @@ apt-get install -y --no-install-recommends \ libdouble-conversion-dev \ libdouble-conversion3 \ libeigen3-dev \ - libexpat-dev \ + libexpat1-dev \ libexpat1 \ libfmt-dev \ - libfmt8 \ libfontconfig1 \ libfreetype6 \ libfreetype6-dev \ libgdal-dev \ - libgdal30 \ - libgl-dev \ - libgl1 \ + libgdal26 \ + libgl1-mesa-dev \ + libgl1-mesa-glx \ libgl2ps-dev \ libgl2ps1.4 \ libglew-dev \ - libglew2.2 \ - libglu-dev \ + libglew2.1 \ + libglu1-mesa \ libglu1-mesa-dev \ libglx0 \ libjpeg-dev \ libjpeg8 \ libjsoncpp-dev \ - libjsoncpp25 \ + libjsoncpp1 \ liblz4-1 \ liblz4-dev \ liblzma5 \ @@ -91,8 +92,8 @@ apt-get install -y --no-install-recommends \ libnetcdf-c++4 \ libnetcdf-cxx-legacy-dev \ libnetcdf-dev \ - libnetcdf19 \ - libodbc2 \ + libnetcdf15 \ + libodbc1 \ libogg-dev \ libogg0 \ libopengl0 \ @@ -101,13 +102,13 @@ apt-get install -y --no-install-recommends \ libpq-dev \ libpq5 \ libproj-dev \ - libproj22 \ + libproj15 \ libsqlite3-0 \ libsqlite3-dev \ libswscale-dev \ libswscale5 \ libtbb-dev \ - libtbb12 \ + libtbb2 \ libtcl8.6 \ libtheora-dev \ libtheora0 \ diff --git a/scripts/setup_ubuntu2004.sh b/scripts/setup_ubuntu2004.sh index c6861bd..998c9dc 100755 --- a/scripts/setup_ubuntu2004.sh +++ b/scripts/setup_ubuntu2004.sh @@ -38,6 +38,8 @@ apt-get install -y --no-install-recommends \ g++ \ git \ lcov \ + libmpich12 \ + libmpich-dev \ make \ python2.7 \ python3 \ @@ -50,46 +52,45 @@ apt-get install -y --no-install-recommends \ freeglut3 \ freeglut3-dev \ libavcodec-dev \ - libavcodec58 \ + libavcodec57 \ libavformat-dev \ - libavformat58 \ + libavformat57 \ libavutil-dev \ - libavutil56 \ + libavutil55 \ libdouble-conversion-dev \ - libdouble-conversion3 \ + libdouble-conversion1 \ libeigen3-dev \ - libexpat-dev \ + libexpat1-dev \ libexpat1 \ libfmt-dev \ - libfmt8 \ libfontconfig1 \ libfreetype6 \ libfreetype6-dev \ libgdal-dev \ - libgdal30 \ - libgl-dev \ - libgl1 \ + libgdal20 \ + libgl1-mesa-dev \ + libgl1-mesa-glx \ libgl2ps-dev \ libgl2ps1.4 \ libglew-dev \ - libglew2.2 \ - libglu-dev \ + libglew2.0 \ + libglu1-mesa \ libglu1-mesa-dev \ libglx0 \ libjpeg-dev \ libjpeg8 \ libjsoncpp-dev \ - libjsoncpp25 \ + libjsoncpp1 \ liblz4-1 \ liblz4-dev \ liblzma5 \ libmysqlclient-dev \ - libmysqlclient21 \ + libmysqlclient20 \ libnetcdf-c++4 \ libnetcdf-cxx-legacy-dev \ libnetcdf-dev \ - libnetcdf19 \ - libodbc2 \ + libnetcdf13 \ + libodbc1 \ libogg-dev \ libogg0 \ libopengl0 \ @@ -98,13 +99,13 @@ apt-get install -y --no-install-recommends \ libpq-dev \ libpq5 \ libproj-dev \ - libproj22 \ + libproj12 \ libsqlite3-0 \ libsqlite3-dev \ libswscale-dev \ - libswscale5 \ + libswscale4 \ libtbb-dev \ - libtbb12 \ + libtbb2 \ libtcl8.6 \ libtheora-dev \ libtheora0 \ diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index 7052489..80f5f2e 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -38,6 +38,8 @@ apt-get install -y --no-install-recommends \ g++ \ git \ lcov \ + libmpich12 \ + libmpich-dev \ make \ python2.7 \ python3 \ @@ -58,7 +60,7 @@ apt-get install -y --no-install-recommends \ libdouble-conversion-dev \ libdouble-conversion3 \ libeigen3-dev \ - libexpat-dev \ + libexpat1-dev \ libexpat1 \ libfmt-dev \ libfmt8 \ @@ -67,13 +69,13 @@ apt-get install -y --no-install-recommends \ libfreetype6-dev \ libgdal-dev \ libgdal30 \ - libgl-dev \ - libgl1 \ + libgl1-mesa-dev \ + libgl1-mesa-glx \ libgl2ps-dev \ libgl2ps1.4 \ libglew-dev \ libglew2.2 \ - libglu-dev \ + libglu1-mesa \ libglu1-mesa-dev \ libglx0 \ libjpeg-dev \ From 1029b16f0eaf982d057a65dfef88b3e5e614ca7b Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 18 Aug 2023 13:55:39 +0100 Subject: [PATCH 20/29] petsc use system mpi --- scripts/install_petsc_hdf5.sh | 85 +++++++++-------------------------- scripts/setup_ubuntu1804.sh | 3 +- scripts/setup_ubuntu2004.sh | 3 +- scripts/setup_ubuntu2204.sh | 3 +- 4 files changed, 26 insertions(+), 68 deletions(-) diff --git a/scripts/install_petsc_hdf5.sh b/scripts/install_petsc_hdf5.sh index e54a547..dd2694a 100755 --- a/scripts/install_petsc_hdf5.sh +++ b/scripts/install_petsc_hdf5.sh @@ -2,8 +2,8 @@ usage() { - echo 'Usage: '"$(basename $0)"' --petsc-version=version --hdf5-version=version [--mpich-version=version]' - echo ' --petsc-arch={linux-gnu|linux-gnu-opt} --modules-dir=path [--parallel=value]' + echo 'Usage: '"$(basename $0)"' --petsc-version=version --petsc-arch={linux-gnu|linux-gnu-opt}' + echo ' --hdf5-version=version --modules-dir=path [--parallel=value]' exit 1 } @@ -11,7 +11,6 @@ usage() petsc_version= petsc_arch= hdf5_version= -mpich_version= base_dir= parallel= @@ -26,9 +25,6 @@ for option; do --hdf5-version=*) hdf5_version=$(expr "x$option" : "x--hdf5-version=\(.*\)") ;; - --mpich-version=*) - mpich_version=$(expr "x$option" : "x--mpich-version=\(.*\)") - ;; --modules-dir=*) base_dir=$(expr "x$option" : "x--modules-dir=\(.*\)") ;; @@ -72,10 +68,6 @@ if [[ (${hdf5_major} -lt 1) || ((${hdf5_major} -eq 1) && (${hdf5_minor} -lt 10)) exit 1 fi -# Preferred MPICH versions -URL_MPICH_3_3=https://www.mpich.org/static/downloads/3.3/mpich-3.3.tar.gz -URL_MPICH_3_4=https://www.mpich.org/static/downloads/3.4a3/mpich-3.4a3.tar.gz - # Fixes for broken Hypre links in some PETSc versions URL_HYPRE_2_11=https://github.com/hypre-space/hypre/archive/refs/tags/v2.11.1.tar.gz URL_HYPRE_2_12=https://github.com/hypre-space/hypre/archive/refs/tags/v2.12.0.tar.gz @@ -91,64 +83,26 @@ URL_HDF5=https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${hdf5_major}.${hdf wget -nc ${URL_HDF5} download_hdf5=$(pwd)/$(basename ${URL_HDF5}) -download_mpich=1 -if [ -n "${mpich_version}" ]; then - URL_MPICH=https://www.mpich.org/static/downloads/${mpich_version}/mpich-${mpich_version}.tar.gz - wget -nc ${URL_MPICH} - download_mpich=$(pwd)/$(basename ${URL_MPICH}) -fi - download_hypre=1 if [[ (${petsc_major} -eq 3) && (${petsc_minor} -eq 7) ]]; then # PETSc 3.7.x - if [ -z "${mpich_version}" ]; then - wget -nc ${URL_MPICH_3_3} - download_mpich=$(pwd)/$(basename ${URL_MPICH_3_3}) - fi - wget -nc ${URL_HYPRE_2_11} # Fixes broken hypre link in this version download_hypre=$(pwd)/$(basename ${URL_HYPRE_2_11}) elif [[ (${petsc_major} -eq 3) && (${petsc_minor} -eq 8) ]]; then # PETSc 3.8.x - if [ -z "${mpich_version}" ]; then - wget -nc ${URL_MPICH_3_3} - download_mpich=$(pwd)/$(basename ${URL_MPICH_3_3}) - fi - wget -nc ${URL_HYPRE_2_12} # Fixes broken hypre link in this version download_hypre=$(pwd)/$(basename ${URL_HYPRE_2_12}) elif [[ (${petsc_major} -eq 3) && (${petsc_minor} -eq 9) ]]; then # PETSc 3.9.x - if [ -z "${mpich_version}" ]; then - wget -nc ${URL_MPICH_3_3} - download_mpich=$(pwd)/$(basename ${URL_MPICH_3_3}) - fi - wget -nc ${URL_HYPRE_2_14} # Fixes broken hypre link in this version download_hypre=$(pwd)/$(basename ${URL_HYPRE_2_14}) elif [[ (${petsc_major} -eq 3) && (${petsc_minor} -eq 10) ]]; then # PETSc 3.10.x - if [ -z "${mpich_version}" ]; then - wget -nc ${URL_MPICH_3_3} - download_mpich=$(pwd)/$(basename ${URL_MPICH_3_3}) - fi - wget -nc ${URL_HYPRE_2_14} # Fixes broken hypre link in this version download_hypre=$(pwd)/$(basename ${URL_HYPRE_2_14}) elif [[ (${petsc_major} -eq 3) && (${petsc_minor} -eq 11) ]]; then # PETSc 3.11.x - if [ -z "${mpich_version}" ]; then - wget -nc ${URL_MPICH_3_3} - download_mpich=$(pwd)/$(basename ${URL_MPICH_3_3}) - fi - wget -nc ${URL_HYPRE_2_15} # Fixes broken hypre link in this version download_hypre=$(pwd)/$(basename ${URL_HYPRE_2_15}) - -elif [[ (${petsc_major} -eq 3) && (${petsc_minor} -eq 12) ]]; then # PETSc 3.12.x - if [ -z "${mpich_version}" ]; then - wget -nc ${URL_MPICH_3_4} - download_mpich=$(pwd)/$(basename ${URL_MPICH_3_4}) - fi fi # Download and extract PETSc @@ -182,41 +136,42 @@ case ${petsc_arch} in linux-gnu) export PETSC_ARCH=linux-gnu ${PYTHON} ./configure \ - --with-make-np=${parallel} \ - --with-cc=gcc \ - --with-cxx=g++ \ + --with-mpi=1 \ + --with-cc=mpicc \ + --with-cxx=mpicxx \ --with-fc=0 \ + --with-debugging=1 \ --COPTFLAGS=-Og \ --CXXOPTFLAGS=-Og \ - --with-x=false \ + --with-shared-libraries \ --with-ssl=false \ + --with-x=false \ --download-f2cblaslapack=1 \ - --download-mpich=${download_mpich} \ --download-hdf5=${download_hdf5} \ - --download-parmetis=1 \ - --download-metis=1 \ --download-hypre=${download_hypre} \ - --with-shared-libraries && \ + --download-metis=1 \ + --download-parmetis=1 \ + --with-make-np=${parallel} && \ make -j ${parallel} all ;; linux-gnu-opt) export PETSC_ARCH=linux-gnu-opt ${PYTHON} ./configure \ - --with-make-np=${parallel} \ - --with-cc=gcc \ - --with-cxx=g++ \ + --with-mpi=1 \ + --with-cc=mpicc \ + --with-cxx=mpicxx \ --with-fc=0 \ - --with-x=false \ + --with-debugging=0 \ + --with-shared-libraries \ --with-ssl=false \ + --with-x=false \ --download-f2cblaslapack=1 \ - --download-mpich=${download_mpich} \ --download-hdf5=${download_hdf5} \ - --download-parmetis=1 \ - --download-metis=1 \ --download-hypre=${download_hypre} \ - --with-shared-libraries \ - --with-debugging=0 && \ + --download-metis=1 \ + --download-parmetis=1 \ + --with-make-np=${parallel} && \ make -j ${parallel} all ;; *) diff --git a/scripts/setup_ubuntu1804.sh b/scripts/setup_ubuntu1804.sh index 177a098..244a558 100755 --- a/scripts/setup_ubuntu1804.sh +++ b/scripts/setup_ubuntu1804.sh @@ -48,7 +48,8 @@ apt-get install -y --no-install-recommends \ python3 \ python3-dev \ python3-pip \ - python3-venv + python3-venv \ + valgrind # VTK dependencies apt-get install -y --no-install-recommends \ diff --git a/scripts/setup_ubuntu2004.sh b/scripts/setup_ubuntu2004.sh index 998c9dc..1755e1c 100755 --- a/scripts/setup_ubuntu2004.sh +++ b/scripts/setup_ubuntu2004.sh @@ -45,7 +45,8 @@ apt-get install -y --no-install-recommends \ python3 \ python3-dev \ python3-pip \ - python3-venv + python3-venv \ + valgrind # VTK dependencies apt-get install -y --no-install-recommends \ diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index 80f5f2e..b7f810e 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -45,7 +45,8 @@ apt-get install -y --no-install-recommends \ python3 \ python3-dev \ python3-pip \ - python3-venv + python3-venv \ + valgrind # VTK dependencies apt-get install -y --no-install-recommends \ From b990c9c0fb520e8a79faa55863688159b560c3bb Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 18 Aug 2023 14:02:14 +0100 Subject: [PATCH 21/29] Remove redundant petsc make -j --- scripts/install_petsc_hdf5.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/install_petsc_hdf5.sh b/scripts/install_petsc_hdf5.sh index dd2694a..fa3911d 100755 --- a/scripts/install_petsc_hdf5.sh +++ b/scripts/install_petsc_hdf5.sh @@ -152,7 +152,7 @@ case ${petsc_arch} in --download-metis=1 \ --download-parmetis=1 \ --with-make-np=${parallel} && \ - make -j ${parallel} all + make all ;; linux-gnu-opt) @@ -172,7 +172,7 @@ case ${petsc_arch} in --download-metis=1 \ --download-parmetis=1 \ --with-make-np=${parallel} && \ - make -j ${parallel} all + make all ;; *) ;; From ad0b46c259f24935a485a1f8d0885ea5ed0248a7 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 18 Aug 2023 20:34:44 +0100 Subject: [PATCH 22/29] Add sqlite3 vtk dependency --- scripts/setup_ubuntu1804.sh | 1 + scripts/setup_ubuntu2004.sh | 1 + scripts/setup_ubuntu2204.sh | 1 + 3 files changed, 3 insertions(+) diff --git a/scripts/setup_ubuntu1804.sh b/scripts/setup_ubuntu1804.sh index 244a558..6334e79 100755 --- a/scripts/setup_ubuntu1804.sh +++ b/scripts/setup_ubuntu1804.sh @@ -127,6 +127,7 @@ apt-get install -y --no-install-recommends \ libxss-dev \ libxt-dev \ libxt6 \ + sqlite3 \ tcl-dev \ tk-dev \ x11proto-core-dev \ diff --git a/scripts/setup_ubuntu2004.sh b/scripts/setup_ubuntu2004.sh index 1755e1c..7edd8c2 100755 --- a/scripts/setup_ubuntu2004.sh +++ b/scripts/setup_ubuntu2004.sh @@ -124,6 +124,7 @@ apt-get install -y --no-install-recommends \ libxss-dev \ libxt-dev \ libxt6 \ + sqlite3 \ tcl-dev \ tk-dev \ x11proto-core-dev \ diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index b7f810e..8c6c11b 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -125,6 +125,7 @@ apt-get install -y --no-install-recommends \ libxss-dev \ libxt-dev \ libxt6 \ + sqlite3 \ tcl-dev \ tk-dev \ x11proto-core-dev \ From ab2826f4ef7bf943a43b049cf1e3c363125e576b Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Sat, 19 Aug 2023 10:36:50 +0100 Subject: [PATCH 23/29] Add image-tests --- .github/workflows/image-tests.yml | 102 ++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 .github/workflows/image-tests.yml diff --git a/.github/workflows/image-tests.yml b/.github/workflows/image-tests.yml new file mode 100644 index 0000000..bc164f6 --- /dev/null +++ b/.github/workflows/image-tests.yml @@ -0,0 +1,102 @@ +name: image-tests + +on: + workflow_dispatch: + inputs: + chaste_branch: + description: 'Chaste branch' + required: true + type: string + default: 'develop' + + image: + description: 'Runner image' + required: true + type: string + default: 'test' + +jobs: + build-and-test: + + runs-on: ubuntu-latest + + container: + image: "chaste/runner:${{ github.event.inputs.image }}" + env: + RUNNER_OFF: 1 + volumes: + - runner_volume:/home/runner + options: --user 0 --cpus 2 + + steps: + - name: checkout chaste + uses: actions/checkout@v3 + with: + repository: Chaste/Chaste + path: Chaste + ref: ${{ github.event.inputs.chaste_branch }} + submodules: recursive + + - name: make build and test directories + run: | + mkdir -p chaste-build-dir + mkdir -p chaste-test-dir + echo "CHASTE_TEST_OUTPUT=$(pwd)/chaste-test-dir" >> ${GITHUB_ENV} + + - name: create module init script + run: | + echo "source /etc/profile.d/modules.sh" > init.sh + echo "module use /home/runner/modules/modulefiles" >> init.sh + echo "module purge" >> init.sh + echo "module load boost" >> init.sh + echo "module load petsc_hdf5" >> init.sh + echo "module load sundials" >> init.sh + echo "module load vtk" >> init.sh + echo "module load xercesc" >> init.sh + echo "module load xsd" >> init.sh + working-directory: chaste-build-dir + + - name: set runner user privileges + run: chown -R runner:runner . + + - name: cmake configure + run: | + source init.sh + su -m runner -c "cmake \ + -DBoost_NO_BOOST_CMAKE=ON \ + -DBoost_NO_SYSTEM_PATHS=ON \ + -DBOOST_ROOT=${BOOST_ROOT} \ + -DCMAKE_BUILD_TYPE=Release \ + ../Chaste" + working-directory: chaste-build-dir + + - name: compile build info + run: | + source init.sh + su -m runner -c "cmake --build . --target TestChasteBuildInfo --parallel $(nproc)" + su -m runner -c "ctest -V -R TestChasteBuildInfo --output-on-failure" + working-directory: chaste-build-dir + + - name: build continuous test pack + run: | + source init.sh + su -m runner -c "cmake --build . --target Continuous --parallel $(nproc)" + working-directory: chaste-build-dir + + - name: build nightly test pack + run: | + source init.sh + su -m runner -c "cmake --build . --target Nightly --parallel $(nproc)" + working-directory: chaste-build-dir + + - name: run continuous test pack + run: | + source init.sh + su -m runner -c "ctest -j $(nproc) -L Continuous --output-on-failure" + working-directory: chaste-build-dir + + - name: run nightly test pack + run: | + source init.sh + su -m runner -c "ctest -j $(nproc) -L Nightly --output-on-failure" + working-directory: chaste-build-dir From 6b47c47c1e16f94007c5e9a2ca2ccd5812211940 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Sat, 19 Aug 2023 10:44:47 +0100 Subject: [PATCH 24/29] Use bash for image-tests --- .github/workflows/image-tests.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/image-tests.yml b/.github/workflows/image-tests.yml index bc164f6..320068f 100644 --- a/.github/workflows/image-tests.yml +++ b/.github/workflows/image-tests.yml @@ -27,7 +27,11 @@ jobs: volumes: - runner_volume:/home/runner options: --user 0 --cpus 2 - + + defaults: + run: + shell: bash + steps: - name: checkout chaste uses: actions/checkout@v3 From fdc7536525881e872640ac3b6891f0aa2887e64b Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Sat, 19 Aug 2023 10:54:59 +0100 Subject: [PATCH 25/29] Label image tag in image-tests --- .github/workflows/image-tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/image-tests.yml b/.github/workflows/image-tests.yml index 320068f..0c44782 100644 --- a/.github/workflows/image-tests.yml +++ b/.github/workflows/image-tests.yml @@ -9,8 +9,8 @@ on: type: string default: 'develop' - image: - description: 'Runner image' + image_tag: + description: 'Runner image tag' required: true type: string default: 'test' @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest container: - image: "chaste/runner:${{ github.event.inputs.image }}" + image: "chaste/runner:${{ github.event.inputs.image_tag }}" env: RUNNER_OFF: 1 volumes: From f9d7c789b0c633ffe78492b25942494ae8888775 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Sat, 19 Aug 2023 11:05:50 +0100 Subject: [PATCH 26/29] Add compiler version to image-tests --- .github/workflows/image-tests.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/image-tests.yml b/.github/workflows/image-tests.yml index 0c44782..e769403 100644 --- a/.github/workflows/image-tests.yml +++ b/.github/workflows/image-tests.yml @@ -28,18 +28,24 @@ jobs: - runner_volume:/home/runner options: --user 0 --cpus 2 + env: + CC: gcc + CXX: g++ + defaults: run: shell: bash steps: + - name: compiler version + run: ${CXX} --version + - name: checkout chaste uses: actions/checkout@v3 with: repository: Chaste/Chaste path: Chaste ref: ${{ github.event.inputs.chaste_branch }} - submodules: recursive - name: make build and test directories run: | From 0af14fdfe52ccc2e2dcae24807c505abf130ce8e Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Sat, 19 Aug 2023 14:12:24 +0100 Subject: [PATCH 27/29] Add build-essential to os scripts --- scripts/setup_ubuntu1804.sh | 3 +-- scripts/setup_ubuntu2004.sh | 3 +-- scripts/setup_ubuntu2204.sh | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/scripts/setup_ubuntu1804.sh b/scripts/setup_ubuntu1804.sh index 6334e79..b61f9b5 100755 --- a/scripts/setup_ubuntu1804.sh +++ b/scripts/setup_ubuntu1804.sh @@ -36,14 +36,13 @@ apt-get install -y --no-install-recommends \ # Chaste dependencies apt-get install -y --no-install-recommends \ + build-essential \ cmake \ doxygen \ - g++ \ git \ lcov \ libmpich12 \ libmpich-dev \ - make \ python2.7 \ python3 \ python3-dev \ diff --git a/scripts/setup_ubuntu2004.sh b/scripts/setup_ubuntu2004.sh index 7edd8c2..66b57f5 100755 --- a/scripts/setup_ubuntu2004.sh +++ b/scripts/setup_ubuntu2004.sh @@ -33,14 +33,13 @@ apt-get install -y --no-install-recommends \ # Chaste dependencies apt-get install -y --no-install-recommends \ + build-essential \ cmake \ doxygen \ - g++ \ git \ lcov \ libmpich12 \ libmpich-dev \ - make \ python2.7 \ python3 \ python3-dev \ diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index 8c6c11b..5366a3d 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -33,14 +33,13 @@ apt-get install -y --no-install-recommends \ # Chaste dependencies apt-get install -y --no-install-recommends \ + build-essential \ cmake \ doxygen \ - g++ \ git \ lcov \ libmpich12 \ libmpich-dev \ - make \ python2.7 \ python3 \ python3-dev \ From 34492ee60d3d86081b6faec83da3f84878d303bd Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Sun, 20 Aug 2023 20:35:40 +0100 Subject: [PATCH 28/29] Run test packs in ubuntu-tests --- .github/workflows/ubuntu-tests.yml | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ubuntu-tests.yml b/.github/workflows/ubuntu-tests.yml index 252b9a8..1b42324 100644 --- a/.github/workflows/ubuntu-tests.yml +++ b/.github/workflows/ubuntu-tests.yml @@ -183,8 +183,26 @@ jobs: grep "${hdf5_ver}" buildinfo working-directory: chaste-build-dir - - name: build all + - name: build continuous test pack run: | source init.sh - cmake --build . --parallel $(nproc) --target all + cmake --build . --target Continuous --parallel $(nproc) + working-directory: chaste-build-dir + + - name: build nightly test pack + run: | + source init.sh + cmake --build . --target Nightly --parallel $(nproc) + working-directory: chaste-build-dir + + - name: run continuous test pack + run: | + source init.sh + ctest -j $(nproc) -L Continuous --output-on-failure + working-directory: chaste-build-dir + + - name: run nightly test pack + run: | + source init.sh + ctest -j $(nproc) -L Nightly --output-on-failure working-directory: chaste-build-dir From c439a51334aead748f030dfeaf609435bff28240 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Thu, 24 Aug 2023 11:14:44 +0100 Subject: [PATCH 29/29] Simplify dockerfile os id --- Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index b570e39..16321f7 100755 --- a/Dockerfile +++ b/Dockerfile @@ -23,8 +23,7 @@ ENV DEFAULT_USER="runner" \ COPY scripts/ /usr/local/bin/ RUN useradd -r -m -d ${DEFAULT_HOME} -s /bin/bash ${DEFAULT_USER} && \ - . /etc/os-release && \ - os_id="$(echo ${VERSION_ID} | sed 's/\.//')" && \ + os_id="$(. /etc/os-release && echo ${VERSION_ID} | sed 's/\.//')" && \ setup_ubuntu${os_id}.sh && \ runner_install.sh --install_dir="/tmp/tmp-runner" && \ /tmp/tmp-runner/bin/installdependencies.sh && \