diff --git a/.github/actions/set-env/action.yml b/.github/actions/set-env/action.yml new file mode 100644 index 0000000..91e6a0e --- /dev/null +++ b/.github/actions/set-env/action.yml @@ -0,0 +1,19 @@ +name: set-env +description: set ubuntu os version and modules base directory +outputs: + modules_dir: + description: "the modules base directory" + value: ${{ steps.set-vars.outputs.modules_dir }} + os_ver: + description: "the ubuntu os version" + value: ${{ steps.set-vars.outputs.os_ver }} +runs: + using: composite + steps: + - id: set-vars + run: | + source /etc/os-release + os_ver="$(echo ${ID}${VERSION_ID} | sed 's/\.//')" + echo "os_ver=${os_ver}" >> $GITHUB_OUTPUT + echo "modules_dir=$HOME/modules" >> $GITHUB_OUTPUT + shell: bash diff --git a/.github/actions/setup-boost/action.yml b/.github/actions/setup-boost/action.yml index 9ed27f4..e6d8f86 100644 --- a/.github/actions/setup-boost/action.yml +++ b/.github/actions/setup-boost/action.yml @@ -7,24 +7,32 @@ inputs: runs: using: composite steps: + - id: set-env + uses: ./.github/actions/set-env + - id: cache-boost - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | - ${{ env.MODULES_DIR }}/opt/boost/${{ inputs.boost_ver }} - ${{ env.MODULES_DIR }}/modulefiles/boost/${{ inputs.boost_ver }} - key: ${{ env.OS_VERSION }}-boost-${{ inputs.boost_ver }}-${{ hashFiles('scripts/install_boost.sh') }} + ${{ steps.set-env.outputs.modules_dir }}/opt/boost/${{ inputs.boost_ver }} + ${{ steps.set-env.outputs.modules_dir }}/modulefiles/boost/${{ inputs.boost_ver }} + key: | + ${{ steps.set-env.outputs.os_ver }}-boost-${{ inputs.boost_ver }}-${{ hashFiles('scripts/install_boost.sh') }} restore-keys: | - ${{ env.OS_VERSION }}-boost-${{ inputs.boost_ver }}- - + ${{ steps.set-env.outputs.os_ver }}-boost-${{ inputs.boost_ver }}- + - name: install boost module if: steps.cache-boost.outputs.cache-hit != 'true' - working-directory: ${{ github.workspace }} - run: ./scripts/install_boost.sh --version=${{ inputs.boost_ver }} --modules-dir=${{ env.MODULES_DIR }} + run: | + ./install_boost.sh \ + --version=${{ inputs.boost_ver }} \ + --modules-dir=${{ steps.set-env.outputs.modules_dir }} + working-directory: ${{ github.workspace }}/scripts shell: bash - + - name: test boost module run: | + module use ${{ steps.set-env.outputs.modules_dir }}/modulefiles module load boost/${{ inputs.boost_ver }} module test boost/${{ inputs.boost_ver }} - shell: bash --login -e -o pipefail {0} # login to load /etc/profile.d/modules.sh + shell: bash --login -e -o pipefail {0} # login to source /etc/profile.d/modules.sh diff --git a/.github/actions/setup-defaults/action.yml b/.github/actions/setup-defaults/action.yml index 6612621..0b0f475 100644 --- a/.github/actions/setup-defaults/action.yml +++ b/.github/actions/setup-defaults/action.yml @@ -3,26 +3,15 @@ description: setup environment and dependencies runs: using: composite steps: - - name: set environment variables - run: | - . /etc/os-release - os_version="$(echo ${ID}${VERSION_ID} | sed 's/\.//')" - echo "OS_VERSION=${os_version}" >> ${GITHUB_ENV} - echo "MODULES_DIR=${{ github.workspace }}/modules" >> ${GITHUB_ENV} - echo "CHASTE_TEST_OUTPUT=${{ github.workspace }}/testoutput" >> ${GITHUB_ENV} - shell: bash + - id: set-env + uses: ./.github/actions/set-env - - name: install dependencies - working-directory: ${{ github.workspace }} - run: sudo ./scripts/setup_${{ env.OS_VERSION }}.sh - shell: bash - - - name: configure environment modules - run: | - mkdir -p ${{ env.MODULES_DIR }}/modulefiles - echo "module use ${{ env.MODULES_DIR }}/modulefiles" | sudo tee -a /etc/profile.d/modules.sh + - name: install os dependencies + run: ./scripts/setup_${{ steps.set-env.outputs.os_ver }}.sh shell: bash - name: test module command - run: module avail - shell: bash --login -e -o pipefail {0} # login to load /etc/profile.d/modules.sh + run: | + source /etc/profile.d/modules.sh + module avail + shell: bash diff --git a/.github/actions/setup-petsc_hdf5/action.yml b/.github/actions/setup-petsc_hdf5/action.yml index f73fbd3..f62dd4e 100644 --- a/.github/actions/setup-petsc_hdf5/action.yml +++ b/.github/actions/setup-petsc_hdf5/action.yml @@ -13,24 +13,34 @@ inputs: runs: using: composite steps: + - id: set-env + uses: ./.github/actions/set-env + - id: cache-petsc_hdf5 - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | - ${{ env.MODULES_DIR }}/opt/petsc_hdf5/${{ inputs.petsc_ver }}_${{ inputs.hdf5_ver }} - ${{ env.MODULES_DIR }}/modulefiles/petsc_hdf5/${{ inputs.petsc_ver }}_${{ inputs.hdf5_ver }}/${{ inputs.petsc_arch }} - key: ${{ env.OS_VERSION }}-petsc_hdf5-${{ inputs.petsc_ver }}-${{ inputs.hdf5_ver }}-${{ inputs.petsc_arch }}-${{ hashFiles('scripts/install_petsc_hdf5.sh') }} + ${{ steps.set-env.outputs.modules_dir }}/opt/petsc_hdf5/${{ inputs.petsc_ver }}_${{ inputs.hdf5_ver }} + ${{ steps.set-env.outputs.modules_dir }}/modulefiles/petsc_hdf5/${{ inputs.petsc_ver }}_${{ inputs.hdf5_ver }}/${{ inputs.petsc_arch }} + key: | + ${{ steps.set-env.outputs.os_ver }}-petsc_hdf5-${{ inputs.petsc_ver }}-${{ inputs.hdf5_ver }}-${{ inputs.petsc_arch }}-${{ hashFiles('scripts/install_petsc_hdf5.sh') }} restore-keys: | - ${{ env.OS_VERSION }}-petsc_hdf5-${{ inputs.petsc_ver }}-${{ inputs.hdf5_ver }}-${{ inputs.petsc_arch }}- - + ${{ steps.set-env.outputs.os_ver }}-petsc_hdf5-${{ inputs.petsc_ver }}-${{ inputs.hdf5_ver }}-${{ inputs.petsc_arch }}- + - name: build and install petsc_hdf5 module if: steps.cache-petsc_hdf5.outputs.cache-hit != 'true' - working-directory: ${{ github.workspace }} - run: ./scripts/install_petsc_hdf5.sh --petsc-version=${{ inputs.petsc_ver }} --hdf5-version=${{ inputs.hdf5_ver }} --petsc-arch=${{ inputs.petsc_arch }} --modules-dir=${{ env.MODULES_DIR }} + run: | + ./install_petsc_hdf5.sh \ + --petsc-version=${{ inputs.petsc_ver }} \ + --hdf5-version=${{ inputs.hdf5_ver }} \ + --petsc-arch=${{ inputs.petsc_arch }} \ + --modules-dir=${{ steps.set-env.outputs.modules_dir }} + working-directory: ${{ github.workspace }}/scripts shell: bash - name: test petsc_hdf5 module run: | + module use ${{ steps.set-env.outputs.modules_dir }}/modulefiles module load petsc_hdf5/${{ inputs.petsc_ver }}_${{ inputs.hdf5_ver }}/${{ inputs.petsc_arch }} module test petsc_hdf5/${{ inputs.petsc_ver }}_${{ inputs.hdf5_ver }}/${{ inputs.petsc_arch }} - shell: bash --login -e -o pipefail {0} # login to load /etc/profile.d/modules.sh + shell: bash --login -e -o pipefail {0} # login to source /etc/profile.d/modules.sh diff --git a/.github/actions/setup-sundials/action.yml b/.github/actions/setup-sundials/action.yml index f86642a..080ba68 100644 --- a/.github/actions/setup-sundials/action.yml +++ b/.github/actions/setup-sundials/action.yml @@ -7,24 +7,32 @@ inputs: runs: using: composite steps: + - id: set-env + uses: ./.github/actions/set-env + - id: cache-sundials - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | - ${{ env.MODULES_DIR }}/opt/sundials/${{ inputs.sundials_ver }} - ${{ env.MODULES_DIR }}/modulefiles/sundials/${{ inputs.sundials_ver }} - key: ${{ env.OS_VERSION }}-sundials-${{ inputs.sundials_ver }}-${{ hashFiles('scripts/install_sundials.sh') }} + ${{ steps.set-env.outputs.modules_dir }}/opt/sundials/${{ inputs.sundials_ver }} + ${{ steps.set-env.outputs.modules_dir }}/modulefiles/sundials/${{ inputs.sundials_ver }} + key: | + ${{ steps.set-env.outputs.os_ver }}-sundials-${{ inputs.sundials_ver }}-${{ hashFiles('scripts/install_sundials.sh') }} restore-keys: | - ${{ env.OS_VERSION }}-sundials-${{ inputs.sundials_ver }}- - + ${{ steps.set-env.outputs.os_ver }}-sundials-${{ inputs.sundials_ver }}- + - name: build and install sundials module if: steps.cache-sundials.outputs.cache-hit != 'true' - working-directory: ${{ github.workspace }} - run: ./scripts/install_sundials.sh --version=${{ inputs.sundials_ver }} --modules-dir=${{ env.MODULES_DIR }} + run: | + ./install_sundials.sh \ + --version=${{ inputs.sundials_ver }} \ + --modules-dir=${{ steps.set-env.outputs.modules_dir }} + working-directory: ${{ github.workspace }}/scripts shell: bash - + - name: test sundials module run: | + module use ${{ steps.set-env.outputs.modules_dir }}/modulefiles module load sundials/${{ inputs.sundials_ver }} module test sundials/${{ inputs.sundials_ver }} - shell: bash --login -e -o pipefail {0} # login to load /etc/profile.d/modules.sh + shell: bash --login -e -o pipefail {0} # login to source /etc/profile.d/modules.sh diff --git a/.github/actions/setup-vtk/action.yml b/.github/actions/setup-vtk/action.yml index 68fa522..0c46f64 100644 --- a/.github/actions/setup-vtk/action.yml +++ b/.github/actions/setup-vtk/action.yml @@ -7,24 +7,32 @@ inputs: runs: using: composite steps: + - id: set-env + uses: ./.github/actions/set-env + - id: cache-vtk - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | - ${{ env.MODULES_DIR }}/opt/vtk/${{ inputs.vtk_ver }} - ${{ env.MODULES_DIR }}/modulefiles/vtk/${{ inputs.vtk_ver }} - key: ${{ env.OS_VERSION }}-vtk-${{ inputs.vtk_ver }}-${{ hashFiles('scripts/install_vtk.sh') }} + ${{ steps.set-env.outputs.modules_dir }}/opt/vtk/${{ inputs.vtk_ver }} + ${{ steps.set-env.outputs.modules_dir }}/modulefiles/vtk/${{ inputs.vtk_ver }} + key: | + ${{ steps.set-env.outputs.os_ver }}-vtk-${{ inputs.vtk_ver }}-${{ hashFiles('scripts/install_vtk.sh') }} restore-keys: | - ${{ env.OS_VERSION }}-vtk-${{ inputs.vtk_ver }}- - - - name: Build and install vtk module + ${{ steps.set-env.outputs.os_ver }}-vtk-${{ inputs.vtk_ver }}- + + - name: build and install vtk module if: steps.cache-vtk.outputs.cache-hit != 'true' - working-directory: ${{ github.workspace }} - run: ./scripts/install_vtk.sh --version=${{ inputs.vtk_ver }} --modules-dir=${{ env.MODULES_DIR }} + run: | + ./install_vtk.sh \ + --version=${{ inputs.vtk_ver }} \ + --modules-dir=${{ steps.set-env.outputs.modules_dir }} + working-directory: ${{ github.workspace }}/scripts shell: bash - + - name: test vtk module run: | + module use ${{ steps.set-env.outputs.modules_dir }}/modulefiles module load vtk/${{ inputs.vtk_ver }} module test vtk/${{ inputs.vtk_ver }} - shell: bash --login -e -o pipefail {0} # login to load /etc/profile.d/modules.sh + shell: bash --login -e -o pipefail {0} # login to source /etc/profile.d/modules.sh diff --git a/.github/actions/setup-xercesc/action.yml b/.github/actions/setup-xercesc/action.yml index c6fddd6..6aeb1de 100644 --- a/.github/actions/setup-xercesc/action.yml +++ b/.github/actions/setup-xercesc/action.yml @@ -7,24 +7,32 @@ inputs: runs: using: composite steps: + - id: set-env + uses: ./.github/actions/set-env + - id: cache-xercesc - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | - ${{ env.MODULES_DIR }}/opt/xercesc/${{ inputs.xercesc_ver }} - ${{ env.MODULES_DIR }}/modulefiles/xercesc/${{ inputs.xercesc_ver }} - key: ${{ env.OS_VERSION }}-xercesc-${{ inputs.xercesc_ver }}-${{ hashFiles('scripts/install_xercesc.sh') }} + ${{ steps.set-env.outputs.modules_dir }}/opt/xercesc/${{ inputs.xercesc_ver }} + ${{ steps.set-env.outputs.modules_dir }}/modulefiles/xercesc/${{ inputs.xercesc_ver }} + key: | + ${{ steps.set-env.outputs.os_ver }}-xercesc-${{ inputs.xercesc_ver }}-${{ hashFiles('scripts/install_xercesc.sh') }} restore-keys: | - ${{ env.OS_VERSION }}-xercesc-${{ inputs.xercesc_ver }}- + ${{ steps.set-env.outputs.os_ver }}-xercesc-${{ inputs.xercesc_ver }}- - name: build and install xercesc module if: steps.cache-xercesc.outputs.cache-hit != 'true' - working-directory: ${{ github.workspace }} - run: ./scripts/install_xercesc.sh --version=${{ inputs.xercesc_ver }} --modules-dir=${{ env.MODULES_DIR }} + run: | + ./install_xercesc.sh \ + --version=${{ inputs.xercesc_ver }} \ + --modules-dir=${{ steps.set-env.outputs.modules_dir }} + working-directory: ${{ github.workspace }}/scripts shell: bash - name: test xercesc module run: | + module use ${{ steps.set-env.outputs.modules_dir }}/modulefiles module load xercesc/${{ inputs.xercesc_ver }} module test xercesc/${{ inputs.xercesc_ver }} - shell: bash --login -e -o pipefail {0} # login to load /etc/profile.d/modules.sh + shell: bash --login -e -o pipefail {0} # login to source /etc/profile.d/modules.sh diff --git a/.github/actions/setup-xsd/action.yml b/.github/actions/setup-xsd/action.yml index a751720..f198059 100644 --- a/.github/actions/setup-xsd/action.yml +++ b/.github/actions/setup-xsd/action.yml @@ -7,24 +7,32 @@ inputs: runs: using: composite steps: + - id: set-env + uses: ./.github/actions/set-env + - id: cache-xsd - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | - ${{ env.MODULES_DIR }}/opt/xsd/${{ inputs.xsd_ver }} - ${{ env.MODULES_DIR }}/modulefiles/xsd/${{ inputs.xsd_ver }} - key: ${{ env.OS_VERSION }}-xsd-${{ inputs.xsd_ver }}-${{ hashFiles('scripts/install_xsd.sh') }} + ${{ steps.set-env.outputs.modules_dir }}/opt/xsd/${{ inputs.xsd_ver }} + ${{ steps.set-env.outputs.modules_dir }}/modulefiles/xsd/${{ inputs.xsd_ver }} + key: | + ${{ steps.set-env.outputs.os_ver }}-xsd-${{ inputs.xsd_ver }}-${{ hashFiles('scripts/install_xsd.sh') }} restore-keys: | - ${{ env.OS_VERSION }}-xsd-${{ inputs.xsd_ver }}- - + ${{ steps.set-env.outputs.os_ver }}-xsd-${{ inputs.xsd_ver }}- + - name: install xsd module if: steps.cache-xsd.outputs.cache-hit != 'true' - working-directory: ${{ github.workspace }} - run: ./scripts/install_xsd.sh --version=${{ inputs.xsd_ver }} --modules-dir=${{ env.MODULES_DIR }} + run: | + ./install_xsd.sh \ + --version=${{ inputs.xsd_ver }} \ + --modules-dir=${{ steps.set-env.outputs.modules_dir }} + working-directory: ${{ github.workspace }}/scripts shell: bash - + - name: test xsd module run: | + module use ${{ steps.set-env.outputs.modules_dir }}/modulefiles module load xsd/${{ inputs.xsd_ver }} module test xsd/${{ inputs.xsd_ver }} - shell: bash --login -e -o pipefail {0} # login to load /etc/profile.d/modules.sh + shell: bash --login -e -o pipefail {0} # login to source /etc/profile.d/modules.sh diff --git a/.github/workflows/boost.yml b/.github/workflows/boost.yml index abae076..ffbbfd0 100644 --- a/.github/workflows/boost.yml +++ b/.github/workflows/boost.yml @@ -4,29 +4,31 @@ on: workflow_dispatch: inputs: boost_ver: - description: 'Boost version' + description: "Boost version" required: true type: string - default: '1.74.0' + default: "1.83.0" os: - description: 'OS' + description: "OS" required: true type: choice options: - - 'ubuntu-20.04' - - 'ubuntu-22.04' - default: 'ubuntu-22.04' + - "ubuntu:22.04" + - "ubuntu:24.04" + default: "ubuntu:24.04" jobs: setup: name: build and cache boost - - runs-on: ${{ github.event.inputs.os }} + + runs-on: ubuntu-latest + container: + image: ${{ github.event.inputs.os }} steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: setup os uses: ./.github/actions/setup-defaults diff --git a/.github/workflows/ubuntu-tests.yml b/.github/workflows/build-all.yml similarity index 82% rename from .github/workflows/ubuntu-tests.yml rename to .github/workflows/build-all.yml index d3a9193..59ec703 100644 --- a/.github/workflows/ubuntu-tests.yml +++ b/.github/workflows/build-all.yml @@ -1,42 +1,36 @@ -name: ubuntu-tests +name: build-all on: workflow_dispatch: jobs: setup: - name: test modules on ubuntu + name: build all modules and compile chaste build info strategy: + fail-fast: false matrix: include: - - os: ubuntu-20.04 + - os: ubuntu:24.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 + sundials_ver: 6.4.1 + boost_ver: 1.83.0 + vtk_ver: 9.1.0 + petsc_ver: 3.19.2 + hdf5_ver: 1.10.10 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: ubuntu-latest + container: + image: ${{ matrix.os }} steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 + + - id: set-env + uses: ./.github/actions/set-env - name: setup defaults uses: ./.github/actions/setup-defaults @@ -74,7 +68,7 @@ jobs: petsc_arch: ${{ matrix.petsc_arch }} - name: checkout chaste - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: Chaste/Chaste path: Chaste @@ -83,12 +77,13 @@ jobs: - name: make build and test directories run: | mkdir -p Chaste/build - mkdir -p ${CHASTE_TEST_OUTPUT} + mkdir -p chaste-test-dir + echo "CHASTE_TEST_OUTPUT=$(pwd)/chaste-test-dir" >> ${GITHUB_ENV} - name: compile chaste build info - working-directory: Chaste/build run: | module purge + module use ${{ steps.set-env.outputs.modules_dir }}/modulefiles module load xsd/${{ matrix.xsd_ver }} module load xercesc/${{ matrix.xercesc_ver }} module load sundials/${{ matrix.sundials_ver }} @@ -97,16 +92,12 @@ jobs: module load petsc_hdf5/${{ matrix.petsc_ver }}_${{ matrix.hdf5_ver }}/${{ matrix.petsc_arch }} cmake -DCMAKE_BUILD_TYPE=Release .. - cmake --build . --parallel $(nproc) --target TestChasteBuildInfo - ctest -V -R TestChasteBuildInfo --output-on-failure | tee buildinfo - - # login to source /etc/profile.d/modules.sh - shell: bash --login -e -o pipefail {0} + working-directory: Chaste/build + shell: bash --login -e -o pipefail {0} # login to source /etc/profile.d/modules.sh - name: verify dependency versions - working-directory: Chaste/build run: | sed -i.bak 's/"//g' buildinfo # removes quotes from old sundials versions @@ -128,4 +119,5 @@ jobs: grep "${vtk_ver}" buildinfo grep "${petsc_ver}" buildinfo grep "${hdf5_ver}" buildinfo + working-directory: Chaste/build shell: bash diff --git a/.github/workflows/docker-portability-01.yml b/.github/workflows/docker-portability-01.yml index f98dab6..6fe1039 100644 --- a/.github/workflows/docker-portability-01.yml +++ b/.github/workflows/docker-portability-01.yml @@ -6,7 +6,7 @@ on: jobs: docker: runs-on: ubuntu-latest - + strategy: fail-fast: false matrix: @@ -23,41 +23,41 @@ jobs: VTK=6.3.0 PETSC=3.12.4 HDF5=1.10.4 - + steps: - name: Checkout - uses: actions/checkout@v3 - + uses: actions/checkout@v4 + - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and export to Docker - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 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 + uses: docker/build-push-action@v5 with: context: . pull: true diff --git a/.github/workflows/docker-portability-02.yml b/.github/workflows/docker-portability-02.yml index 46a1ff9..b6db8fd 100644 --- a/.github/workflows/docker-portability-02.yml +++ b/.github/workflows/docker-portability-02.yml @@ -6,7 +6,7 @@ on: jobs: docker: runs-on: ubuntu-latest - + strategy: fail-fast: false matrix: @@ -22,41 +22,41 @@ jobs: VTK=7.1.1 PETSC=3.13.6 HDF5=1.10.5 - + steps: - name: Checkout - uses: actions/checkout@v3 - + uses: actions/checkout@v4 + - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and export to Docker - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 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 + uses: docker/build-push-action@v5 with: context: . pull: true diff --git a/.github/workflows/docker-portability-03.yml b/.github/workflows/docker-portability-03.yml index 6383ad9..ccbd45a 100644 --- a/.github/workflows/docker-portability-03.yml +++ b/.github/workflows/docker-portability-03.yml @@ -6,7 +6,7 @@ on: jobs: docker: runs-on: ubuntu-latest - + strategy: fail-fast: false matrix: @@ -22,41 +22,41 @@ jobs: VTK=9.0.3 PETSC=3.14.6 HDF5=1.10.6 - + steps: - name: Checkout - uses: actions/checkout@v3 - + uses: actions/checkout@v4 + - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and export to Docker - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 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 + uses: docker/build-push-action@v5 with: context: . pull: true diff --git a/.github/workflows/docker-portability-04.yml b/.github/workflows/docker-portability-04.yml index 43e1934..53b30e0 100644 --- a/.github/workflows/docker-portability-04.yml +++ b/.github/workflows/docker-portability-04.yml @@ -6,7 +6,7 @@ on: jobs: docker: runs-on: ubuntu-latest - + strategy: fail-fast: false matrix: @@ -22,41 +22,41 @@ jobs: VTK=8.2.0 PETSC=3.15.5 HDF5=1.10.7 - + steps: - name: Checkout - uses: actions/checkout@v3 - + uses: actions/checkout@v4 + - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and export to Docker - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 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 + uses: docker/build-push-action@v5 with: context: . pull: true diff --git a/.github/workflows/docker-portability-05.yml b/.github/workflows/docker-portability-05.yml index 83efeb5..7a4aa32 100644 --- a/.github/workflows/docker-portability-05.yml +++ b/.github/workflows/docker-portability-05.yml @@ -6,7 +6,7 @@ on: jobs: docker: runs-on: ubuntu-latest - + strategy: fail-fast: false matrix: @@ -22,41 +22,41 @@ jobs: VTK=9.1.0 PETSC=3.15.5 HDF5=1.10.8 - + steps: - name: Checkout - uses: actions/checkout@v3 - + uses: actions/checkout@v4 + - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and export to Docker - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 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 + uses: docker/build-push-action@v5 with: context: . pull: true diff --git a/.github/workflows/docker-portability-06.yml b/.github/workflows/docker-portability-06.yml index 389f1db..4adab58 100644 --- a/.github/workflows/docker-portability-06.yml +++ b/.github/workflows/docker-portability-06.yml @@ -6,7 +6,7 @@ on: jobs: docker: runs-on: ubuntu-latest - + strategy: fail-fast: false matrix: @@ -22,41 +22,41 @@ jobs: VTK=9.2.6 PETSC=3.15.5 HDF5=1.12.2 - + steps: - name: Checkout - uses: actions/checkout@v3 - + uses: actions/checkout@v4 + - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and export to Docker - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 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 + uses: docker/build-push-action@v5 with: context: . pull: true diff --git a/.github/workflows/docker-portability-dev.yml b/.github/workflows/docker-portability-dev.yml index 7d1a45f..6c65b0d 100644 --- a/.github/workflows/docker-portability-dev.yml +++ b/.github/workflows/docker-portability-dev.yml @@ -6,7 +6,7 @@ on: jobs: docker: runs-on: ubuntu-latest - + strategy: fail-fast: false matrix: @@ -22,41 +22,41 @@ jobs: VTK=9.2.6 PETSC=3.15.5 HDF5=1.12.2 - + steps: - name: Checkout - uses: actions/checkout@v3 - + uses: actions/checkout@v4 + - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and export to Docker - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 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 + uses: docker/build-push-action@v5 with: context: . pull: true diff --git a/.github/workflows/docker-portability-system.yml b/.github/workflows/docker-portability-system.yml index b0f4974..ae2c769 100644 --- a/.github/workflows/docker-portability-system.yml +++ b/.github/workflows/docker-portability-system.yml @@ -4,15 +4,15 @@ on: workflow_dispatch: inputs: ubuntu_release: - description: 'Ubuntu release' + description: "Ubuntu release" required: true type: string - default: 'mantic' + default: "mantic" jobs: docker: runs-on: ubuntu-latest - + strategy: fail-fast: false matrix: @@ -28,41 +28,41 @@ jobs: VTK=system PETSC=system HDF5=system - + steps: - name: Checkout - uses: actions/checkout@v3 - + uses: actions/checkout@v4 + - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and export to Docker - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 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 + uses: docker/build-push-action@v5 with: context: . pull: true diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index bf64f50..c22c1c8 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -6,47 +6,45 @@ on: jobs: docker: runs-on: ubuntu-latest - + strategy: fail-fast: false matrix: include: - - base: focal - tags: chaste/runner:focal, chaste/runner:latest - - base: jammy - tags: chaste/runner:jammy - + - base: noble + tags: chaste/runner:noble, chaste/runner:latest + steps: - name: Checkout - uses: actions/checkout@v3 - + uses: actions/checkout@v4 + - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and export to Docker - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: context: . pull: true load: true build-args: BASE=${{ matrix.base }} tags: ${{ matrix.tags }} - + - name: Test image run: | docker run --rm --entrypoint /bin/bash chaste/runner:${{ matrix.base }} - + - name: Build and push - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: context: . pull: true diff --git a/.github/workflows/docker-test.yml b/.github/workflows/docker-test.yml index 9193e4e..e2d4cc4 100644 --- a/.github/workflows/docker-test.yml +++ b/.github/workflows/docker-test.yml @@ -6,7 +6,7 @@ on: jobs: docker: runs-on: ubuntu-latest - + strategy: fail-fast: false matrix: @@ -22,32 +22,32 @@ jobs: VTK=6.3.0 PETSC=3.12.4 HDF5=1.10.4 - + steps: - name: Checkout - uses: actions/checkout@v3 - + uses: actions/checkout@v4 + - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and export to Docker - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: context: . pull: true load: true tags: ${{ matrix.tags }} build-args: ${{ matrix.build-args }} - + - name: Test image run: | tags=( ${{ matrix.tags }} ) @@ -56,7 +56,7 @@ jobs: done - name: Build and push - uses: docker/build-push-action@v4 + uses: docker/build-push-action@v5 with: context: . pull: true diff --git a/.github/workflows/image-tests.yml b/.github/workflows/image-tests.yml index 5b98906..0350f57 100644 --- a/.github/workflows/image-tests.yml +++ b/.github/workflows/image-tests.yml @@ -4,20 +4,19 @@ on: workflow_dispatch: inputs: chaste_branch: - description: 'Chaste branch' + description: "Chaste branch" required: true type: string - default: 'develop' + default: "develop" image_tag: - description: 'Runner image tag' + description: "Runner image tag" required: true type: string - default: 'test' + default: "test" jobs: build-and-test: - runs-on: ubuntu-latest container: @@ -35,18 +34,18 @@ jobs: defaults: run: shell: bash - + steps: - name: compiler version run: ${CXX} --version - name: checkout chaste - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: Chaste/Chaste path: Chaste ref: ${{ github.event.inputs.chaste_branch }} - + - name: make build and test directories run: | mkdir -p chaste-build-dir @@ -68,7 +67,7 @@ jobs: - name: set runner user privileges run: chown -R runner:runner . - + - name: cmake configure run: | source init.sh 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/petsc_hdf5.yml b/.github/workflows/petsc_hdf5.yml index 42ed00e..f445bef 100644 --- a/.github/workflows/petsc_hdf5.yml +++ b/.github/workflows/petsc_hdf5.yml @@ -4,44 +4,46 @@ on: workflow_dispatch: inputs: petsc_ver: - description: 'PETSc version' + description: "PETSc version" required: true type: string - default: '3.15.5' + default: "3.19.2" petsc_arch: - description: 'PETSc arch' + description: "PETSc arch" required: true type: choice options: - - 'linux-gnu' - - 'linux-gnu-opt' - default: 'linux-gnu' + - "linux-gnu" + - "linux-gnu-opt" + default: "linux-gnu" hdf5_ver: - description: 'HDF5 version' + description: "HDF5 version" required: true type: string - default: '1.10.8' + default: "1.10.10" os: - description: 'OS' + description: "OS" required: true type: choice options: - - 'ubuntu-20.04' - - 'ubuntu-22.04' - default: 'ubuntu-22.04' + - "ubuntu:22.04" + - "ubuntu:24.04" + default: "ubuntu:24.04" jobs: setup: name: build and cache petsc_hdf5 - - runs-on: ${{ github.event.inputs.os }} - + + runs-on: ubuntu-latest + container: + image: ${{ github.event.inputs.os }} + steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: setup os uses: ./.github/actions/setup-defaults diff --git a/.github/workflows/sundials.yml b/.github/workflows/sundials.yml index 251a98a..6f55d31 100644 --- a/.github/workflows/sundials.yml +++ b/.github/workflows/sundials.yml @@ -4,29 +4,31 @@ on: workflow_dispatch: inputs: sundials_ver: - description: 'SUNDIALS version' + description: "SUNDIALS version" required: true type: string - default: '5.8.0' + default: "6.4.1" os: - description: 'OS' + description: "OS" required: true type: choice options: - - 'ubuntu-20.04' - - 'ubuntu-22.04' - default: 'ubuntu-22.04' + - "ubuntu:22.04" + - "ubuntu:24.04" + default: "ubuntu:24.04" jobs: setup: name: build and cache sundials - - runs-on: ${{ github.event.inputs.os }} - + + runs-on: ubuntu-latest + container: + image: ${{ github.event.inputs.os }} + steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: setup os uses: ./.github/actions/setup-defaults diff --git a/.github/workflows/version-tests.yml b/.github/workflows/version-tests.yml deleted file mode 100644 index 2a06b62..0000000 --- a/.github/workflows/version-tests.yml +++ /dev/null @@ -1,323 +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 \ - -DChaste_USE_CVODE=${use_cvode} \ - -DChaste_USE_VTK=${use_vtk} \ - -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/* diff --git a/.github/workflows/vtk.yml b/.github/workflows/vtk.yml index 1088537..5756eb9 100644 --- a/.github/workflows/vtk.yml +++ b/.github/workflows/vtk.yml @@ -4,29 +4,31 @@ on: workflow_dispatch: inputs: vtk_ver: - description: 'VTK version' + description: "VTK version" required: true type: string - default: '9.2.6' + default: "9.1.0" os: - description: 'OS' + description: "OS" required: true type: choice options: - - 'ubuntu-20.04' - - 'ubuntu-22.04' - default: 'ubuntu-22.04' + - "ubuntu:22.04" + - "ubuntu:24.04" + default: "ubuntu:24.04" jobs: setup: name: build and cache vtk - - runs-on: ${{ github.event.inputs.os }} - + + runs-on: ubuntu-latest + container: + image: ${{ github.event.inputs.os }} + steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: setup os uses: ./.github/actions/setup-defaults diff --git a/.github/workflows/xercesc.yml b/.github/workflows/xercesc.yml index 5e6fad4..2f318bc 100644 --- a/.github/workflows/xercesc.yml +++ b/.github/workflows/xercesc.yml @@ -4,29 +4,31 @@ on: workflow_dispatch: inputs: xercesc_ver: - description: 'XercesC version' + description: "XercesC version" required: true type: string - default: '3.2.4' + default: "3.2.4" os: - description: 'OS' + description: "OS" required: true type: choice options: - - 'ubuntu-20.04' - - 'ubuntu-22.04' - default: 'ubuntu-22.04' + - "ubuntu:22.04" + - "ubuntu:24.04" + default: "ubuntu:24.04" jobs: setup: name: build and cache xercesc - - runs-on: ${{ github.event.inputs.os }} - + + runs-on: ubuntu-latest + container: + image: ${{ github.event.inputs.os }} + steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: setup os uses: ./.github/actions/setup-defaults diff --git a/.github/workflows/xsd.yml b/.github/workflows/xsd.yml index 63759fc..be23014 100644 --- a/.github/workflows/xsd.yml +++ b/.github/workflows/xsd.yml @@ -4,34 +4,36 @@ on: workflow_dispatch: inputs: xsd_ver: - description: 'XSD version' + description: "XSD version" required: true type: string - default: '4.0.0' + default: "4.0.0" os: - description: 'OS' + description: "OS" required: true type: choice options: - - 'ubuntu-20.04' - - 'ubuntu-22.04' - default: 'ubuntu-22.04' + - "ubuntu:22.04" + - "ubuntu:24.04" + default: "ubuntu:24.04" jobs: setup: - name: install and cache xsd - - runs-on: ${{ github.event.inputs.os }} - + name: build and cache xsd + + runs-on: ubuntu-latest + container: + image: ${{ github.event.inputs.os }} + steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: setup os uses: ./.github/actions/setup-defaults - - - name: install and cache + + - name: build and cache uses: ./.github/actions/setup-xsd with: xsd_ver: ${{ github.event.inputs.xsd_ver }} diff --git a/Dockerfile b/Dockerfile index 2f7eb46..24b3bec 100755 --- a/Dockerfile +++ b/Dockerfile @@ -3,12 +3,12 @@ ARG BASE=focal FROM ubuntu:${BASE} ARG XSD=4.0.0 -ARG XERCESC=3.2.3 -ARG SUNDIALS=5.8.0 -ARG BOOST=1.73.0 -ARG VTK=7.1.1 -ARG PETSC=3.8.4 -ARG HDF5=1.10.8 +ARG XERCESC=3.2.4 +ARG SUNDIALS=6.4.1 +ARG BOOST=1.83.0 +ARG VTK=9.1.0 +ARG PETSC=3.19.2 +ARG HDF5=1.10.10 SHELL ["/bin/bash", "-e", "-o", "pipefail", "-c"] diff --git a/README.md b/README.md index 40da6ec..0071e39 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,9 @@ -![ubuntu-tests](https://github.com/Chaste/dependency-modules/actions/workflows/ubuntu-tests.yml/badge.svg) +![boost](https://github.com/Chaste/dependency-modules/actions/workflows/boost.yml/badge.svg) +![petsc_hdf5](https://github.com/Chaste/dependency-modules/actions/workflows/petsc_hdf5.yml/badge.svg) +![sundials](https://github.com/Chaste/dependency-modules/actions/workflows/sundials.yml/badge.svg) +![vtk](https://github.com/Chaste/dependency-modules/actions/workflows/vtk.yml/badge.svg) +![xercesc](https://github.com/Chaste/dependency-modules/actions/workflows/xercesc.yml/badge.svg) +![xsd](https://github.com/Chaste/dependency-modules/actions/workflows/xsd.yml/badge.svg) # Chaste Dependency Modules diff --git a/scripts/install_vtk.sh b/scripts/install_vtk.sh index e1e3e34..be0d22c 100755 --- a/scripts/install_vtk.sh +++ b/scripts/install_vtk.sh @@ -131,6 +131,18 @@ if [[ ${major} -eq 9 && ${minor} -eq 0 ]]; then # VTK == 9.0.x patch -t -p1 < ${script_dir}/patches/vtk9.0-fix-limits.patch fi +# VTK 9.1.x patches: https://sources.debian.org/patches/vtk9/9.1.0%2Breally9.1.0%2Bdfsg2-7.1/ +if [[ ${major} -eq 9 && ${minor} -eq 1 ]]; then # VTK == 9.1.x + cd ${src_dir} + patch -t -p1 < ${script_dir}/patches/vtk/9.1/gcc-13.patch +fi + +# VTK 9.2.x patches: https://sources.debian.org/patches/vtk9/9.1.0%2Breally9.1.0%2Bdfsg2-7.1/ +if [[ ${major} -eq 9 && ${minor} -eq 2 ]]; then # VTK == 9.2.x + cd ${src_dir} + patch -t -p1 < ${script_dir}/patches/vtk/9.1/gcc-13.patch +fi + # Build and install install_dir=${base_dir}/opt/vtk/${version} mkdir -p ${install_dir} diff --git a/scripts/patches/vtk/9.1/gcc-13.patch b/scripts/patches/vtk/9.1/gcc-13.patch new file mode 100644 index 0000000..e5261b6 --- /dev/null +++ b/scripts/patches/vtk/9.1/gcc-13.patch @@ -0,0 +1,30 @@ +From 1233ceec268d5366c66f5e79786ec784042b591b Mon Sep 17 00:00:00 2001 +From: Laurent Rineau +Date: Tue, 17 Jan 2023 16:18:53 +0100 +Subject: Add #include to compile with gcc13 +Origin: upstream, https://gitlab.kitware.com/vtk/vtk/-/commit/1233ceec268d5366c66f5e79786ec784042b591b + +The `vtkSEPReader` was introduced by MRs !4909 (from my former +collaborator Maxime) and !4938. Then it was highly modified by +!7516. The later MR is the one that introduced the uses of +`std::uint8_t` and `std::uint32_t`. + +Those types needs the inclusion of ``. +--- + IO/Image/vtkSEPReader.h | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- vtk9.orig/IO/Image/vtkSEPReader.h ++++ vtk9/IO/Image/vtkSEPReader.h +@@ -25,8 +25,9 @@ + #include "vtkImageAlgorithm.h" + #include "vtkNew.h" // for ivars + +-#include // for std::array +-#include // for std::string ++#include // for std::array ++#include // for std::uint8_t and std::uint32_t ++#include // for std::string + + namespace details + { diff --git a/scripts/setup_ubuntu1804.sh b/scripts/setup_ubuntu1804.sh index 213b088..c0d71e9 100755 --- a/scripts/setup_ubuntu1804.sh +++ b/scripts/setup_ubuntu1804.sh @@ -1,50 +1,49 @@ #!/bin/sh -# Package: chaste-dependencies -# Version: 2018.04.18 -# Depends: cmake | scons, g++, libopenmpi-dev, petsc-dev, libhdf5-openmpi-dev, -# xsdcxx, libboost-serialization-dev, libboost-filesystem-dev, -# libboost-program-options-dev, libparmetis-dev, libmetis-dev, -# libxerces-c-dev, libsundials-dev | libsundials-serial-dev, -# libvtk7-dev | libvtk6-dev | libvtk5-dev, python-lxml, python-amara, -# python-rdflib, libproj-dev -# Recommends: git, valgrind, libpetsc3.7.7-dbg | libpetsc3.7.6-dbg | -# libpetsc3.6.4-dbg | libpetsc3.6.2-dbg | libpetsc3.4.2-dbg, -# libfltk1.1, hdf5-tools, cmake-curses-gui -# Suggests: libgoogle-perftools-dev, doxygen, graphviz, eclipse-cdt, -# 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 +apt-get update && \ +apt-get install -y --no-install-recommends \ + apt-utils \ + apt-transport-https \ + ca-certificates \ + gnupg \ + wget 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 + cmake \ + cmake-curses-gui \ + doxygen \ + environment-modules \ + g++ \ + git \ + gnuplot \ + graphviz \ + hdf5-tools \ + lcov \ + libboost-serialization-dev \ + libboost-filesystem-dev \ + libboost-program-options-dev \ + libhdf5-openmpi-dev \ + libmetis-dev \ + libopenmpi-dev \ + libparmetis-dev \ + libpetsc3.7.7-dbg \ + libsundials-dev \ + libvtk9.1 \ + libvtk9-dev \ + libxerces-c-dev \ + mencoder \ + petsc-dev \ + python3 \ + python3-dev \ + python3-pip \ + python3-venv \ + python2.7 \ + tcl \ + valgrind \ + xsdcxx # https://bugs.launchpad.net/ubuntu/+source/vtk7/+bug/1878103 # https://github.com/Chaste/chaste-docker/blob/4dd5a4819716c3defa0bfb5145bfa902bf07ecf4/Dockerfile#L89 diff --git a/scripts/setup_ubuntu2004.sh b/scripts/setup_ubuntu2004.sh index 766bdef..7f67a03 100755 --- a/scripts/setup_ubuntu2004.sh +++ b/scripts/setup_ubuntu2004.sh @@ -1,45 +1,50 @@ #!/bin/sh -# Package: chaste-dependencies -# Version: 2020.10.05 -# Depends: cmake | scons, g++, libopenmpi-dev, petsc-dev, libhdf5-openmpi-dev, -# xsdcxx, libboost-serialization-dev, libboost-filesystem-dev, -# libboost-program-options-dev, libparmetis-dev, libmetis-dev, -# libxerces-c-dev, libsundials-dev, libvtk7-dev | libvtk6-dev, -# python3, python3-venv -# Recommends: git, valgrind, libpetsc-real3.12-dbg, libfltk1.1, -# hdf5-tools, cmake-curses-gui -# Suggests: libgoogle-perftools-dev, doxygen, graphviz, subversion, git-svn, -# 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 +apt-get update && \ +apt-get install -y --no-install-recommends \ + apt-utils \ + apt-transport-https \ + ca-certificates \ + gnupg \ + wget 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 + cmake \ + cmake-curses-gui \ + doxygen \ + environment-modules \ + g++ \ + git \ + gnuplot \ + graphviz \ + hdf5-tools \ + lcov \ + libboost-serialization-dev \ + libboost-filesystem-dev \ + libboost-program-options-dev \ + libhdf5-openmpi-dev \ + libmetis-dev \ + libopenmpi-dev \ + libparmetis-dev \ + libpetsc-real3.12 \ + libpetsc-real3.12-dbg \ + libpetsc-real3.12-dev \ + libsundials-dev \ + libvtk9.1 \ + libvtk9-dev \ + libxerces-c-dev \ + mencoder \ + petsc-dev \ + python3 \ + python3-dev \ + python3-pip \ + python3-venv \ + python2.7 \ + valgrind \ + xsdcxx # https://bugs.launchpad.net/ubuntu/+source/vtk7/+bug/1878103 # https://github.com/Chaste/chaste-docker/blob/4dd5a4819716c3defa0bfb5145bfa902bf07ecf4/Dockerfile#L89 diff --git a/scripts/setup_ubuntu2204.sh b/scripts/setup_ubuntu2204.sh index 3594dcb..89fee36 100755 --- a/scripts/setup_ubuntu2204.sh +++ b/scripts/setup_ubuntu2204.sh @@ -1,49 +1,50 @@ #!/bin/sh -# Package: chaste-dependencies -# Version: 2022.04.11 -# Depends: cmake | scons, g++, libopenmpi-dev, petsc-dev, libhdf5-openmpi-dev, -# xsdcxx, libboost-serialization-dev, libboost-filesystem-dev, -# libboost-program-options-dev, libparmetis-dev, libmetis-dev, -# libxerces-c-dev, libsundials-dev, libvtk7-dev | libvtk6-dev, -# python3, python3-venv -# Recommends: git, valgrind, libpetsc-real3.15-dbg | libpetsc-real3.14-dbg | -# libpetsc-real3.12-dbg, libfltk1.1, hdf5-tools, cmake-curses-gui -# Suggests: libgoogle-perftools-dev, doxygen, graphviz, subversion, git-svn, -# gnuplot, paraview -# APT-Sources: https://chaste.github.io/ubuntu jammy/ Packages - 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 \ - git \ - valgrind \ - libpetsc-real3.15-dbg \ - libfltk1.1 \ - hdf5-tools \ - cmake-curses-gui \ - lcov \ - doxygen \ - graphviz \ - gnuplot \ - paraview \ - mencoder \ - python3-dev \ - python3-pip \ - python2.7 \ - libffi-dev \ - environment-modules + apt-utils \ + apt-transport-https \ + ca-certificates \ + gnupg \ + wget -# 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 +apt-get update && \ +apt-get install -y --no-install-recommends \ + cmake \ + cmake-curses-gui \ + doxygen \ + environment-modules \ + g++ \ + git \ + gnuplot \ + graphviz \ + hdf5-tools \ + lcov \ + libboost-serialization-dev \ + libboost-filesystem-dev \ + libboost-program-options-dev \ + libhdf5-openmpi-dev \ + libmetis-dev \ + libopenmpi-dev \ + libparmetis-dev \ + libpetsc-real3.15 \ + libpetsc-real3.15-dbg \ + libpetsc-real3.15-dev \ + libsundials-dev \ + libvtk9.1 \ + libvtk9-dev \ + libxerces-c-dev \ + mencoder \ + petsc-dev \ + python3 \ + python3-dev \ + python3-pip \ + python3-venv \ + python2.7 \ + valgrind \ + xsdcxx # https://bugs.launchpad.net/ubuntu/+source/vtk7/+bug/1878103 # https://github.com/Chaste/chaste-docker/blob/4dd5a4819716c3defa0bfb5145bfa902bf07ecf4/Dockerfile#L89 diff --git a/scripts/setup_ubuntu2304.sh b/scripts/setup_ubuntu2304.sh index e809237..eeeeb4e 100755 --- a/scripts/setup_ubuntu2304.sh +++ b/scripts/setup_ubuntu2304.sh @@ -2,6 +2,14 @@ export DEBIAN_FRONTEND=noninteractive +apt-get update && \ +apt-get install -y --no-install-recommends \ + apt-utils \ + apt-transport-https \ + ca-certificates \ + gnupg \ + wget + apt-get update && \ apt-get install -y --no-install-recommends \ cmake \ diff --git a/scripts/setup_ubuntu2310.sh b/scripts/setup_ubuntu2310.sh index e809237..eeeeb4e 100755 --- a/scripts/setup_ubuntu2310.sh +++ b/scripts/setup_ubuntu2310.sh @@ -2,6 +2,14 @@ export DEBIAN_FRONTEND=noninteractive +apt-get update && \ +apt-get install -y --no-install-recommends \ + apt-utils \ + apt-transport-https \ + ca-certificates \ + gnupg \ + wget + apt-get update && \ apt-get install -y --no-install-recommends \ cmake \ diff --git a/scripts/setup_ubuntu2404.sh b/scripts/setup_ubuntu2404.sh new file mode 100755 index 0000000..3e56faa --- /dev/null +++ b/scripts/setup_ubuntu2404.sh @@ -0,0 +1,49 @@ +#!/bin/sh + +export DEBIAN_FRONTEND=noninteractive + +apt-get update && \ +apt-get install -y --no-install-recommends \ + apt-utils \ + apt-transport-https \ + ca-certificates \ + gnupg \ + wget + +apt-get update && \ +apt-get install -y --no-install-recommends \ + cmake \ + cmake-curses-gui \ + doxygen \ + environment-modules \ + g++ \ + git \ + gnuplot \ + graphviz \ + hdf5-tools \ + lcov \ + libboost-serialization-dev \ + libboost-filesystem-dev \ + libboost-program-options-dev \ + libhdf5-openmpi-dev \ + libmetis-dev \ + libopenmpi-dev \ + libparmetis-dev \ + libpetsc-real3.19 \ + libpetsc-real3.19-dbg \ + libpetsc-real3.19-dev \ + libsundials-dev \ + libvtk9.1 \ + libvtk9-dev \ + libxerces-c-dev \ + mencoder \ + petsc-dev \ + python3 \ + python3-dev \ + python3-pip \ + python3-venv \ + valgrind \ + xsdcxx + +update-alternatives --install /usr/local/bin/python python /usr/bin/python3 10 +update-alternatives --install /usr/local/bin/pip pip /usr/bin/pip3 10