Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 25 additions & 9 deletions .github/workflows/build-all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,28 +128,42 @@ jobs:

module test xsd/${{ env.XSD_VER }}

- name: Build PETSc + HDF5
- name: Build HDF5
run: |
module use ${{ env.MODULES_DIR }}/modulefiles
module load boost/${{ env.BOOST_VER }}
module load xercesc/${{ env.XERCESC_VER }}
module load xsd/${{ env.XSD_VER }}

./install_petsc_hdf5.sh \
--petsc-version=${{ env.PETSC_VER }} \
--petsc-arch=${{ env.PETSC_ARCH }} \
--hdf5-version=${{ env.HDF5_VER }} \
./install_hdf5.sh \
--version=${{ env.HDF5_VER }} \
--modules-dir=${{ env.MODULES_DIR }}

module test petsc_hdf5/${{ env.PETSC_VER }}_${{ env.HDF5_VER }}/${{ env.PETSC_ARCH }}
module test hdf5/${{ env.HDF5_VER }}

- name: Build PETSc
run: |
module use ${{ env.MODULES_DIR }}/modulefiles
module load boost/${{ env.BOOST_VER }}
module load xercesc/${{ env.XERCESC_VER }}
module load xsd/${{ env.XSD_VER }}
module load hdf5/${{ env.HDF5_VER }}

./install_petsc.sh \
--version=${{ env.PETSC_VER }} \
--arch=${{ env.PETSC_ARCH }} \
--modules-dir=${{ env.MODULES_DIR }}

module test petsc/${{ env.PETSC_VER }}/${{ env.PETSC_ARCH }}

- name: Build SUNDIALS
run: |
module use ${{ env.MODULES_DIR }}/modulefiles
module load boost/${{ env.BOOST_VER }}
module load xercesc/${{ env.XERCESC_VER }}
module load xsd/${{ env.XSD_VER }}
module load petsc_hdf5/${{ env.PETSC_VER }}_${{ env.HDF5_VER }}/${{ env.PETSC_ARCH }}
module load hdf5/${{ env.HDF5_VER }}
module load petsc/${{ env.PETSC_VER }}/${{ env.PETSC_ARCH }}

./install_sundials.sh \
--version=${{ env.SUNDIALS_VER }} \
Expand All @@ -163,7 +177,8 @@ jobs:
module load boost/${{ env.BOOST_VER }}
module load xercesc/${{ env.XERCESC_VER }}
module load xsd/${{ env.XSD_VER }}
module load petsc_hdf5/${{ env.PETSC_VER }}_${{ env.HDF5_VER }}/${{ env.PETSC_ARCH }}
module load hdf5/${{ env.HDF5_VER }}
module load petsc/${{ env.PETSC_VER }}/${{ env.PETSC_ARCH }}
module load sundials/${{ env.SUNDIALS_VER }}

./install_vtk.sh \
Expand All @@ -183,7 +198,8 @@ jobs:
module load boost/${{ env.BOOST_VER }}
module load xercesc/${{ env.XERCESC_VER }}
module load xsd/${{ env.XSD_VER }}
module load petsc_hdf5/${{ env.PETSC_VER }}_${{ env.HDF5_VER }}/${{ env.PETSC_ARCH }}
module load hdf5/${{ env.HDF5_VER }}
module load petsc/${{ env.PETSC_VER }}/${{ env.PETSC_ARCH }}
module load sundials/${{ env.SUNDIALS_VER }}
module load vtk/${{ env.VTK_VER }}

Expand Down
51 changes: 51 additions & 0 deletions .github/workflows/build-hdf5.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Build HDF5

on:
workflow_dispatch:
inputs:
hdf5_ver:
description: "HDF5 version"
required: true
type: string
default: "1.10.10"

defaults:
run:
shell: bash --login -e -o pipefail {0} # login for environment modules
working-directory: ./scripts/custom

jobs:
setup:
name: Build HDF5 ${{github.event.inputs.hdf5_ver }}

runs-on: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set env
run: |
echo "MODULES_DIR=$HOME/modules" >> $GITHUB_ENV
echo "HDF5_VER=${{ github.event.inputs.hdf5_ver }}" >> $GITHUB_ENV

- name: Setup OS
run: |
sudo ./setup_custom.sh

- name: List environment modules
run: |
module avail

- name: Run build script
run: |
./install_hdf5.sh \
--version=${{ env.HDF5_VER }} \
--modules-dir=${{ env.MODULES_DIR }}

- name: Test
run: |
module use ${{ env.MODULES_DIR }}/modulefiles
module avail
module load hdf5/${{ env.HDF5_VER }}
module test hdf5/${{ env.HDF5_VER }}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build PETSc + HDF5
name: Build PETSc

on:
workflow_dispatch:
Expand All @@ -18,20 +18,14 @@ on:
- "linux-gnu-opt"
default: "linux-gnu"

hdf5_ver:
description: "HDF5 version"
required: true
type: string
default: "1.10.10"

defaults:
run:
shell: bash --login -e -o pipefail {0} # login for environment modules
working-directory: ./scripts/custom

jobs:
setup:
name: Build PETSc ${{ github.event.inputs.petsc_ver }} + HDF5 ${{github.event.inputs.hdf5_ver }}
name: Build PETSc ${{ github.event.inputs.petsc_ver }}/${{github.event.inputs.petsc_arch }}

runs-on: ubuntu-22.04

Expand All @@ -44,7 +38,6 @@ jobs:
echo "MODULES_DIR=$HOME/modules" >> $GITHUB_ENV
echo "PETSC_VER=${{ github.event.inputs.petsc_ver }}" >> $GITHUB_ENV
echo "PETSC_ARCH=${{ github.event.inputs.petsc_arch }}" >> $GITHUB_ENV
echo "HDF5_VER=${{ github.event.inputs.hdf5_ver }}" >> $GITHUB_ENV

- name: Setup OS
run: |
Expand All @@ -56,15 +49,14 @@ jobs:

- name: Run build script
run: |
./install_petsc_hdf5.sh \
--petsc-version=${{ env.PETSC_VER }} \
--petsc-arch=${{ env.PETSC_ARCH }} \
--hdf5-version=${{ env.HDF5_VER }} \
./install_petsc.sh \
--version=${{ env.PETSC_VER }} \
--arch=${{ env.PETSC_ARCH }} \
--modules-dir=${{ env.MODULES_DIR }}

- name: Test
run: |
module use ${{ env.MODULES_DIR }}/modulefiles
module avail
module load petsc_hdf5/${{ env.PETSC_VER }}_${{ env.HDF5_VER }}/${{ env.PETSC_ARCH }}
module test petsc_hdf5/${{ env.PETSC_VER }}_${{ env.HDF5_VER }}/${{ env.PETSC_ARCH }}
module load petsc/${{ env.PETSC_VER }}/${{ env.PETSC_ARCH }}
module test petsc/${{ env.PETSC_VER }}/${{ env.PETSC_ARCH }}
2 changes: 1 addition & 1 deletion .github/workflows/portability-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
source /etc/profile.d/modules.sh
module use /home/runner/modules/modulefiles
module avail
module load boost petsc_hdf5 sundials vtk xercesc xsd
module load boost hdf5 petsc sundials vtk xercesc xsd
module list
EOF
working-directory: build
Expand Down
36 changes: 32 additions & 4 deletions Dockerfile.custom
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ ENV DEFAULT_USER="runner" \
MODULES_DIR="/home/runner/modules"

# Copy scripts
COPY scripts/*.sh scripts/custom/ /usr/local/bin/
COPY scripts/custom/ scripts/*.sh /usr/local/bin/

# Setup base dependencies and install actions runner
RUN useradd -r -m -d ${DEFAULT_HOME} -s /bin/bash ${DEFAULT_USER} && \
Expand Down Expand Up @@ -84,11 +84,37 @@ RUN source /etc/profile.d/modules.sh && \
module load boost && \
module load xercesc && \
module load xsd && \
install_hdf5.sh \
--version=${HDF5} \
--parallel=$(nproc) \
--modules-dir=${MODULES_DIR} && \
module test hdf5 && \
rm -rf ${MODULES_DIR}/src/* && \
rm -rf /tmp/*

RUN source /etc/profile.d/modules.sh && \
module use ${MODULES_DIR}/modulefiles && \
module load boost && \
module load xercesc && \
module load xsd && \
module load hdf5 && \
install_petsc.sh \
--version=${PETSC} \
--arch=linux-gnu \
--parallel=$(nproc) \
--modules-dir=${MODULES_DIR} && \
module test petsc && \
rm -rf ${MODULES_DIR}/src/* && \
rm -rf /tmp/*

# TODO: This RUN section is a temporary workaround for backwards compatibility.
# Remove once the combined PETSc/HDF5 module is no longer needed.
RUN source /etc/profile.d/modules.sh && \
module use ${MODULES_DIR}/modulefiles && \
install_petsc_hdf5.sh \
--petsc-version=${PETSC} \
--petsc-arch=linux-gnu \
--hdf5-version=${HDF5} \
--parallel=$(nproc) \
--modules-dir=${MODULES_DIR} && \
module test petsc_hdf5 && \
rm -rf ${MODULES_DIR}/src/* && \
Expand All @@ -99,7 +125,8 @@ RUN source /etc/profile.d/modules.sh && \
module load boost && \
module load xercesc && \
module load xsd && \
module load petsc_hdf5 && \
module load hdf5 && \
module load petsc && \
install_sundials.sh \
--version=${SUNDIALS} \
--parallel=$(nproc) \
Expand All @@ -113,7 +140,8 @@ RUN source /etc/profile.d/modules.sh && \
module load boost && \
module load xercesc && \
module load xsd && \
module load petsc_hdf5 && \
module load hdf5 && \
module load petsc && \
module load sundials && \
install_vtk.sh \
--version=${VTK} \
Expand Down
5 changes: 3 additions & 2 deletions Dockerfile.system
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ ENV DEFAULT_USER="runner" \
MODULES_DIR="/home/runner/modules"

# Copy scripts
COPY scripts/*.sh scripts/system/ /usr/local/bin/
COPY scripts/system/ scripts/*.sh /usr/local/bin/

# Setup Chaste dependencies and install actions runner
RUN useradd -r -m -d ${DEFAULT_HOME} -s /bin/bash ${DEFAULT_USER} && \
Expand All @@ -47,7 +47,8 @@ RUN source /etc/profile.d/modules.sh && \
module test boost && \
module test xsd && \
module test xercesc && \
module test petsc_hdf5 && \
module test hdf5 && \
module test petsc && \
module test sundials && \
module test vtk

Expand Down
30 changes: 19 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
![boost](https://github.com/Chaste/dependency-modules/actions/workflows/build-boost.yml/badge.svg)
![petsc_hdf5](https://github.com/Chaste/dependency-modules/actions/workflows/build-petsc_hdf5.yml/badge.svg)
![hdf5](https://github.com/Chaste/dependency-modules/actions/workflows/build-hdf5.yml/badge.svg)
![petsc](https://github.com/Chaste/dependency-modules/actions/workflows/build-petsc.yml/badge.svg)
![sundials](https://github.com/Chaste/dependency-modules/actions/workflows/build-sundials.yml/badge.svg)
![vtk](https://github.com/Chaste/dependency-modules/actions/workflows/build-vtk.yml/badge.svg)
![xercesc](https://github.com/Chaste/dependency-modules/actions/workflows/build-xercesc.yml/badge.svg)
Expand Down Expand Up @@ -75,27 +76,32 @@ Install XSD

Install Xerces-C
```sh
./install_xercesc.sh --version=3.2.4 --modules-dir=${MODULES_DIR}
./install_xercesc.sh --version=3.2.4 --modules-dir=${MODULES_DIR} --parallel=4
```

Install SUNDIALS
```sh
./install_sundials.sh --version=6.4.0 --modules-dir=${MODULES_DIR}
./install_sundials.sh --version=6.4.0 --modules-dir=${MODULES_DIR} --parallel=4
```

Install Boost
```sh
./install_boost.sh --version=1.83.0 --modules-dir=${MODULES_DIR}
./install_boost.sh --version=1.83.0 --modules-dir=${MODULES_DIR} --parallel=4
```

Install VTK
Install HDF5
```sh
./install_vtk.sh --version=9.3.1 --modules-dir=${MODULES_DIR}
./install_hdf5.sh --version=1.10.10 --modules-dir=${MODULES_DIR} --parallel=4
```

Install PETSc + HDF5
Install PETSc
```sh
./install_petsc.sh --version=3.19.6 --arch=linux-gnu-opt --modules-dir=${MODULES_DIR} --parallel=4
```

Install VTK
```sh
./install_petsc_hdf5.sh --petsc-version=3.19.6 --hdf5-version=1.10.10 --petsc-arch=linux-gnu-opt --modules-dir=${MODULES_DIR}
./install_vtk.sh --version=9.3.1 --modules-dir=${MODULES_DIR} --parallel=4
```

> [!TIP]
Expand All @@ -110,8 +116,9 @@ Use `module avail` to show available software modules
```
---------------- /home/<user>/modules/modulefiles ----------------
boost/1.83.0 vtk/9.3.1
petsc_hdf5/3.19.6_1.10.810/linux-gnu-opt xercesc/3.2.4
sundials/6.4.0 xsd/4.0.0
hdf5/1.10.10 xercesc/3.2.4
petsc/3.19.6/linux-gnu-opt xsd/4.0.0
sundials/6.4.0
```

Use `module load` to activate software modules
Expand All @@ -120,8 +127,9 @@ module load xsd/4.0.0
module load xercesc/3.2.4
module load sundials/6.4.0
module load boost/1.83.0
module load hdf5/1.10.10
module load petsc/3.19.6/linux-gnu-opt
module load vtk/9.3.1
module load petsc_hdf5/3.19.6_1.10.10/linux-gnu-opt
```

### 5. Build Chaste
Expand Down
1 change: 1 addition & 0 deletions scripts/custom/common.sh
Loading