Skip to content

Bump actions/checkout from 3 to 4 #1

Bump actions/checkout from 3 to 4

Bump actions/checkout from 3 to 4 #1

Workflow file for this run

name: CI
on:
pull_request:
branches:
- master
workflow_dispatch:
# for cancelling redundant runs
concurrency:
group: ci-${{ github.head_ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
ubuntu:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
build-type: [Custom, FullDebug]
compiler: [gcc, clang]
env:
KRATOS_BUILD_TYPE: ${{ matrix.build-type }}
OMPI_MCA_rmaps_base_oversubscribe: 1 # Allow oversubscription for MPI (needed for OpenMPI >= 3.0)
OMPI_MCA_btl_vader_single_copy_mechanism: none # suppressing some annoying OpenMPI messages
container:
image: kratosmultiphysics/kratos-image-ci-ubuntu-20-04:latest
options: --user 1001
steps:
- uses: actions/checkout@v4
- name: Build
shell: bash
run: |
if [ ${{ matrix.compiler }} = gcc ]; then
export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
export KRATOS_CMAKE_OPTIONS_FLAGS="-DUSE_EIGEN_MKL=ON -DUSE_EIGEN_FEAST=ON -DTRILINOS_EXCLUDE_AMESOS2_SOLVER=OFF -DMMG_ROOT=/external_libraries/mmg/mmg_5_5_1/ -DPMMG_ROOT=/external_libraries/ParMmg_5ffc6ad -DINCLUDE_PMMG=ON"
export KRATOS_CMAKE_CXX_FLAGS="-std=c++11 -Werror -Wno-deprecated-declarations -Wignored-qualifiers"
elif [ ${{ matrix.compiler }} = clang ]; then
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
export KRATOS_CMAKE_CXX_FLAGS="-Werror -Wno-deprecated-declarations"
if [ ${{ matrix.build-type }} = FullDebug ]; then
export KRATOS_CMAKE_CXX_FLAGS="${KRATOS_CMAKE_CXX_FLAGS} -std=c++17"
else
export KRATOS_CMAKE_CXX_FLAGS="${KRATOS_CMAKE_CXX_FLAGS} -std=c++11"
fi
export KRATOS_CMAKE_OPTIONS_FLAGS="-DTRILINOS_EXCLUDE_AMESOS2_SOLVER=OFF -DMMG_ROOT=/external_libraries/mmg/mmg_5_4_1/"
else
echo 'Unsupported compiler: ${{ matrix.compiler }}'
exit 1
fi
source /opt/intel/oneapi/setvars.sh
cp .github/workflows/configure.sh configure.sh
bash configure.sh
- name: Running python tests
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
python3 kratos/python_scripts/run_tests.py -v 2 -l nightly -c python3
- name: Running MPICore C++ tests (2 Cores)
shell: bash
timeout-minutes : 10
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
mpiexec -np 2 python3 kratos/python_scripts/run_cpp_mpi_tests.py --using-mpi
- name: Running MPICore C++ tests (3 Cores)
shell: bash
timeout-minutes : 10
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
mpiexec -np 3 python3 kratos/python_scripts/run_cpp_mpi_tests.py --using-mpi
- name: Running MPICore C++ tests (4 Cores)
shell: bash
timeout-minutes : 10
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
mpiexec -np 4 python3 kratos/python_scripts/run_cpp_mpi_tests.py --using-mpi
- name: Running Python MPI tests (2 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l nightly -n 2
- name: Running Python MPI tests (3 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l nightly -n 3
- name: Running Python MPI tests (4 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/${{ matrix.build-type }}/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l nightly -n 4
windows:
runs-on: windows-2022
env:
KRATOS_BUILD_TYPE: Custom
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.8'
- name: Download boost
run: |
$url = "https://sourceforge.net/projects/boost/files/boost/1.74.0/boost_1_74_0.tar.gz/download"
(New-Object System.Net.WebClient).DownloadFile($url, "$env:TEMP\boost.tar.gz")
7z.exe x "$env:TEMP\boost.tar.gz" -o"$env:TEMP\boostArchive" -y | Out-Null
7z.exe x "$env:TEMP\boostArchive" -o"$env:TEMP\boost" -y | Out-Null
- name: Installing dependencies
shell: cmd
run: |
pip install numpy
pip install sympy
pip install h5py
- name: Build
shell: cmd
run: |
copy .\.github\workflows\configure.cmd
configure.cmd
- name: Running python tests
shell: cmd
run: |
set PYTHONPATH=%PYTHONPATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%
set PATH=%PATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%/libs
python kratos/python_scripts/run_tests.py -l nightly -c python
centos:
runs-on: ubuntu-latest
env:
KRATOS_BUILD_TYPE: Custom
container:
image: kratosmultiphysics/kratos-image-ci-centos7-python35:latest
options: --user 1001
steps:
- uses: actions/checkout@v4
- name: Build
run: |
cp .github/workflows/centos_configure.sh centos_configure.sh
bash centos_configure.sh
- name: Running python tests
run: |
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3.5 kratos/python_scripts/run_tests.py -l nightly -c python3.5
ubuntu-core-without-unity:
runs-on: ubuntu-latest
env:
KRATOS_BUILD_TYPE: Custom
OMPI_MCA_rmaps_base_oversubscribe: 1 # Allow oversubscription for MPI (needed for OpenMPI >= 3.0)
container:
image: kratosmultiphysics/kratos-image-ci-ubuntu-20-04:latest
options: --user 1001
env:
CCACHE_SLOPPINESS: pch_defines,time_macros
CCACHE_COMPILERCHECK: content
CCACHE_COMPRESS: true
CCACHE_NODISABLE: true
CCACHE_MAXSIZE: 500M
steps:
- uses: actions/checkout@v4
- name: Cache Build
id: cache-build
uses: actions/cache@v3
with:
path: ~/.ccache
key: ${{ runner.os }}-no-unity-ccache-${{ github.sha }}
restore-keys: ${{ runner.os }}-no-unity-ccache-
- name: Build
shell: bash
run: |
export CC=/usr/lib/ccache/clang-10
export CXX=/usr/lib/ccache/clang++-10
export KRATOS_SOURCE="${KRATOS_SOURCE:-${PWD}}"
export KRATOS_BUILD="${KRATOS_SOURCE}/build"
export KRATOS_APP_DIR="${KRATOS_SOURCE}/applications"
export PYTHON_EXECUTABLE="/usr/bin/python3.8"
export KRATOS_INSTALL_PYTHON_USING_LINKS=ON
add_app () {
export KRATOS_APPLICATIONS="${KRATOS_APPLICATIONS}$1;"
}
add_app ${KRATOS_APP_DIR}/LinearSolversApplication;
add_app ${KRATOS_APP_DIR}/MetisApplication;
add_app ${KRATOS_APP_DIR}/TrilinosApplication;
source /opt/intel/oneapi/setvars.sh
# Configure
cmake -H"${KRATOS_SOURCE}" -B"${KRATOS_BUILD}/${KRATOS_BUILD_TYPE}" \
-DUSE_MPI=ON \
-DPYBIND11_PYTHON_VERSION="3.8" \
-DTRILINOS_INCLUDE_DIR="/usr/include/trilinos" \
-DTRILINOS_LIBRARY_DIR="/usr/lib/x86_64-linux-gnu" \
-DTRILINOS_LIBRARY_PREFIX="trilinos_" \
-DINSTALL_RUNKRATOS=OFF
# Buid
cmake --build "${KRATOS_BUILD}/${KRATOS_BUILD_TYPE}" --target install -- -j2
ccache -s
- name: Running python tests
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/run_tests.py -l nightly -c python3
- name: Running MPICore C++ tests (2 Cores)
shell: bash
timeout-minutes : 10
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
mpiexec -np 2 python3 kratos/python_scripts/run_cpp_mpi_tests.py --using-mpi
- name: Running MPICore C++ tests (3 Cores)
shell: bash
timeout-minutes : 10
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
mpiexec -np 3 python3 kratos/python_scripts/run_cpp_mpi_tests.py --using-mpi
- name: Running MPICore C++ tests (4 Cores)
shell: bash
timeout-minutes : 10
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
mpiexec -np 4 python3 kratos/python_scripts/run_cpp_mpi_tests.py --using-mpi
- name: Running Python MPI tests (2 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l nightly -n 2
- name: Running Python MPI tests (3 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l nightly -n 3
- name: Running Python MPI tests (4 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l nightly -n 4
windows-core-without-unity:
runs-on: windows-2022
env:
KRATOS_BUILD_TYPE: Custom
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.8'
- name: Download boost
run: |
$url = "https://sourceforge.net/projects/boost/files/boost/1.74.0/boost_1_74_0.tar.gz/download"
(New-Object System.Net.WebClient).DownloadFile($url, "$env:TEMP\boost.tar.gz")
7z.exe x "$env:TEMP\boost.tar.gz" -o"$env:TEMP\boostArchive" -y | Out-Null
7z.exe x "$env:TEMP\boostArchive" -o"$env:TEMP\boost" -y | Out-Null
- name: Installing dependencies
shell: cmd
run: |
pip install numpy
pip install sympy
- name: Build
shell: cmd
run: |
call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 || goto :error
set CC=cl.exe
set CXX=cl.exe
set KRATOS_SOURCE=%cd%
set KRATOS_BUILD=%cd%\build
set KRATOS_APP_DIR=applications
set KRATOS_APPLICATIONS=%KRATOS_APP_DIR%\LinearSolversApplication;
del /F /Q "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%\cmake_install.cmake"
del /F /Q "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%\CMakeCache.txt"
del /F /Q "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%\CMakeFiles"
cmake ^
-G"Visual Studio 17 2022" ^
-H"%KRATOS_SOURCE%" ^
-B"%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%" ^
-DBOOST_ROOT="%TEMP%\boost" ^
-DINSTALL_RUNKRATOS=OFF ^
-DCMAKE_CXX_FLAGS="/Od /we4661 /we4804 /WX /wd4996" ^
-DFORCE_LOCAL_ZLIB_COMPILATION=ON || goto :error
cmake --build "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%" --target all_build -- /property:configuration=%KRATOS_BUILD_TYPE% /p:Platform=x64 || goto :error
cmake --build "%KRATOS_BUILD%\%KRATOS_BUILD_TYPE%" --target install -- /property:configuration=%KRATOS_BUILD_TYPE% /p:Platform=x64 || goto :error
goto :EOF
:error
echo Failed with error #%errorlevel%.
exit /b %errorlevel%
- name: Running python tests
shell: cmd
run: |
set PYTHONPATH=%PYTHONPATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%
set PATH=%PATH%;%GITHUB_WORKSPACE%/bin/%KRATOS_BUILD_TYPE%/libs
python kratos/python_scripts/run_tests.py -l nightly -c python
ubuntu-intel:
runs-on: ubuntu-latest
env:
KRATOS_BUILD_TYPE: Custom
OMPI_MCA_rmaps_base_oversubscribe: 1 # Allow oversubscription for MPI (needed for OpenMPI >= 3.0)
OMPI_MCA_btl_vader_single_copy_mechanism: none # suppressing some annoying OpenMPI messages
container:
image: kratosmultiphysics/kratos-image-ci-ubuntu-20-04:latest
options: --user 1001
steps:
- uses: actions/checkout@v4
- name: Build
shell: bash
run: |
export CC=icc
export CXX=icpc
source /opt/intel/oneapi/setvars.sh
cp .github/workflows/intel_configure.sh configure.sh
bash configure.sh
- name: Running python tests
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/run_tests.py -l nightly -c python3
- name: Running MPICore C++ tests (2 Cores)
shell: bash
timeout-minutes : 10
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
mpiexec -np 2 python3 kratos/python_scripts/run_cpp_mpi_tests.py --using-mpi
- name: Running MPICore C++ tests (3 Cores)
shell: bash
timeout-minutes : 10
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
mpiexec -np 3 python3 kratos/python_scripts/run_cpp_mpi_tests.py --using-mpi
- name: Running MPICore C++ tests (4 Cores)
shell: bash
timeout-minutes : 10
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
mpiexec -np 4 python3 kratos/python_scripts/run_cpp_mpi_tests.py --using-mpi
- name: Running Python MPI tests (2 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l nightly -n 2
- name: Running Python MPI tests (3 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l nightly -n 3
- name: Running Python MPI tests (4 Cores)
shell: bash
run: |
source /opt/intel/oneapi/setvars.sh
export PYTHONPATH=${PYTHONPATH}:${GITHUB_WORKSPACE}/bin/Custom
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GITHUB_WORKSPACE}/bin/Custom/libs
python3 kratos/python_scripts/testing/run_python_mpi_tests.py -l nightly -n 4