Skip to content

CHG: added example

CHG: added example #50

Workflow file for this run

name: Ubuntu Basic CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
ISSM_DIR: ${{ github.workspace }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- run: echo "The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Installling Open MPI
run: |
sudo apt-get install -y libopenmpi-dev
- name: Installing MATLAB
id: setup-matlab
uses: matlab-actions/setup-matlab@v2
with:
release: R2023b
- name: Check out repository code
uses: actions/checkout@v4
- name: Modify PETSc's installation script
run: |
echo "Removing mpich from PETSc installation script"
sed -i.bak '/mpich/d' $ISSM_DIR/externalpackages/petsc/install-3.21-linux.sh
- name: Install External packages
run: |
cd $ISSM_DIR/externalpackages/triangle && ./install-linux.sh
cd $ISSM_DIR/externalpackages/m1qn3 && ./install-linux.sh
cd $ISSM_DIR/externalpackages/petsc && ./install-3.21-linux.sh
source $ISSM_DIR/etc/environment.sh
- name: Reconfigure ISSM
run: |
autoreconf -ivf
./configure --prefix=${ISSM_DIR} \
--disable-static \
--enable-development \
--enable-debugging \
--with-numthreads=4 \
--with-matlab-dir=${{ steps.setup-matlab.outputs.matlabroot }} \
--with-fortran-lib="-L/usr/lib/x86_64-linux-gnu -lgfortran" \
--with-mpi-include="/usr/lib/x86_64-linux-gnu/openmpi/include/" \
--with-mpi-libflags="-L/usr/lib/x86_64-linux-gnu/openmpi/lib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lmpi_cxx" \
--with-petsc-dir="${ISSM_DIR}/externalpackages/petsc/install" \
--with-blas-lapack-dir="${ISSM_DIR}/externalpackages/petsc/install" \
--with-metis-dir="${ISSM_DIR}/externalpackages/petsc/install" \
--with-parmetis-dir="${ISSM_DIR}/externalpackages/petsc/install" \
--with-scalapack-dir="${ISSM_DIR}/externalpackages/petsc/install" \
--with-mumps-dir="${ISSM_DIR}/externalpackages/petsc/install" \
--with-triangle-dir="${ISSM_DIR}/externalpackages/triangle/install" \
--with-m1qn3-dir="${ISSM_DIR}/externalpackages/m1qn3/install"
- name: Compile ISSM
run: make -j8 install
- name: Prepare MATLAB script
run: |
echo "Modifying generic.m to avoid \"There are not enough slots available\""
sed -i.back "s/mpiexec -np %i/mpiexec -np %i --oversubscribe/g" $ISSM_DIR/src/m/classes/clusters/generic.m
echo "Creating matlab_ci.m"
cat > ${ISSM_DIR}/matlab_ci.m << EOF
% Go to the test directory
cd $ISSM_DIR/test/NightlyRun/
% Add ISSM tools to path
addpath('${ISSM_DIR}/src/m/dev');
devpath;
% Run tests
runme('exclude',[IdFromString('Dakota')],'id',101:110,'quitonerror',1);
quit(0);
EOF
cat ${ISSM_DIR}/matlab_ci.m
- name: Get run-matlab-command
run: |
wget -O /usr/local/bin/run-matlab-command https://ssd.mathworks.com/supportfiles/ci/run-matlab-command/v2/glnxa64/run-matlab-command
chmod +x /usr/local/bin/run-matlab-command
- name: Run MATLAB Command
run: |
source $ISSM_DIR/etc/environment.sh
LD_PRELOAD=/lib/x86_64-linux-gnu/libstdc++.so.6 run-matlab-command "matlab_ci"
- run: echo "This job's status is ${{ job.status }}."