Skip to content

Add method in 'MessagePassingMng' to set the communicator #734

Add method in 'MessagePassingMng' to set the communicator

Add method in 'MessagePassingMng' to set the communicator #734

name: IFPEN el9 gimkl/2021b C++20
on:
push:
branches: [ main, dev/cea, dev/ifpen, dev/ci_ifpen ]
pull_request:
branches: [ main, dev/cea, dev/ifpen, dev/ci_ifpen ]
workflow_dispatch:
inputs:
ctest_options:
description: 'CTest options'
required: false
default: ''
env:
# Framework directories
BUILD_DIR: /__w/framework/framework/build
INSTALL_DIR: /__w/framework/framework/install
SOURCE_DIR: /__w/framework/framework/source
EXT_LIB_SUBDIR: extlib # /__w/framework/framework/build/dependencies
# ccache
CCACHE_COMPRESS: true
CCACHE_COMPRESSLEVEL: 6
CCACHE_DIR: '/__w/framework/framework/ccache'
CCACHE_MAXSIZE: 5G
# CMake
CM_BUILD_OPTS: "-v"
CM_BUILD_TYPE: Debug
CM_CCACHE_OPTS: "-DCMAKE_CXX_COMPILER_LAUNCHER=ccache"
# CTest
CT_OPTS: "--timeout 60 --output-on-failure ${{ github.event.inputs.ctest_options }}"
# For intel MPI to fix errors appearing in July 2023
I_MPI_SHM_LMT: shm
# To remove test output directory to reduce disk usage
ARCANE_TEST_CLEANUP_AFTER_RUN : 1
jobs:
build:
name: build
runs-on: ubuntu-latest
timeout-minutes: 120
container:
image: ghcr.io/arcaneframework/arcane-ifpen-devenv-gimkl-2021b:el9
#options: --user root # Avoid to match github UID in container.
strategy:
fail-fast: false
steps:
# ccache
- name: Get date
id: get-date
shell: bash
run: echo "NOW=$(/bin/date -u '+%Y%m%d%H%M%S')" >> $GITHUB_ENV
- name: Restore cache
id: restore-cache
uses: actions/cache/restore@v4
with:
path: ${{ env.CCACHE_DIR }}
key: ifpen-el9-gimkl-2021b-cxx20-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }}
restore-keys: ifpen-el9-gimkl-2021b-cxx20-${{ env.CM_BUILD_TYPE }}-
# Installation
- name: Checkout
id: checkout
if: |
(success() || failure())
uses: actions/checkout@v4
with:
path: ${{ env.SOURCE_DIR }}
submodules: true
- name: Modules information
id: modules_information
if: |
(success() || failure()) &&
steps.checkout.outcome == 'success'
shell: bash
run: module --terse list 2>&1 | sort
- name: Configure
id: configure
if: |
(success() || failure()) &&
steps.checkout.outcome == 'success'
shell: bash
run: cmake -S ${{ env.SOURCE_DIR }} -B ${{ env.BUILD_DIR }} -G Ninja -DCMAKE_VERBOSE_MAKEFILE=TRUE -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} ${{ env.CM_CCACHE_OPTS }} -DCMAKE_BUILD_TYPE=${{ env.CM_BUILD_TYPE }} -DARCCORE_BUILD_MODE=Check -DREMOVE_UID_ON_DETACH=ON -DUSE_GTEST_DEATH_TEST=ON -DCMAKE_DISABLE_FIND_PACKAGE_Papi=ON -DCMAKE_DISABLE_FIND_PACKAGE_Trilinos=ON -DALIEN_BUILD_COMPONENT=all -DALIEN_PLUGIN_HYPRE=ON -DALIEN_PLUGIN_PETSC=ON -DARCCORE_CXX_STANDARD=20 -DUSE_GRAPH_CONNECTIVITY_POLICY=ON
- name: Build
id: build
if: |
(success() || failure()) &&
steps.configure.outcome == 'success'
shell: bash
run: cmake --build ${{ env.BUILD_DIR }} ${{ env.CM_BUILD_OPTS }}
- name: Clean
id: clean
if: |
(success() || failure()) &&
steps.build.outcome == 'success'
shell: bash
run: find ${{ env.BUILD_DIR }} -type f -name '*.o' -exec rm -f '{}' \;
- name: Install
id: install
if: |
(success() || failure()) &&
steps.build.outcome == 'success'
shell: bash
run: cmake --install ${{ env.BUILD_DIR }}
- name: Copy external libraries
id: copy-external-libraries
if: |
(success() || failure()) &&
steps.install.outcome == 'success'
shell: bash
run: |
cd ${{ env.BUILD_DIR }}
echo '--'
cat /scripts/copyextlib_github.sh
echo '--'
bash /scripts/copyextlib_github.sh
- name: Tar build artifact
shell: bash
run: tar czf build-artifact.tar.gz ${{ env.BUILD_DIR }}
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build-artifact
path: build-artifact.tar.gz
retention-days: 1
- name: Save cache
id: save-cache
if: |
(success() || failure()) &&
steps.build.outcome == 'success'
uses: actions/cache/save@v4
with:
path: ${{ env.CCACHE_DIR }}
key: ${{ steps.restore-cache.outputs.cache-primary-key }}
# test:
# name: test
# needs:
# - build
# runs-on: ubuntu-latest
# timeout-minutes: 120
# container:
# image: ghcr.io/arcaneframework/arcane-ifpen-devenv-gimkl-2021b-rt:el9
# #options: --user root # Avoid to match github UID in container.
# strategy:
# fail-fast: false
# steps:
# - name: Checkout
# id: checkout
# if: |
# (success() || failure())
# uses: actions/checkout@v4
# with:
# path: ${{ env.SOURCE_DIR }}
# submodules: true
# - name: Download build artifact
# uses: actions/download-artifact@v4
# with:
# name: build-artifact
# - name: Untar build artifact
# shell: bash
# run: tar xf build-artifact.tar.gz -C /
# - name: Remove build artifact tar
# shell: bash
# run: rm -f build-artifact.tar.gz
# - name: Test
# id: test
# shell: bash
# run: |
# export LD_LIBRARY_PATH=${{ env.BUILD_DIR }}/${{ env.EXT_LIB_SUBDIR }}:${LD_LIBRARY_PATH}
# which mpiexec
# mpiexec --version
# ctest --test-dir ${{ env.BUILD_DIR }} ${{ env.CT_OPTS }}
# - name: Upload test artifact
# id: upload-test-artifact
# uses: actions/upload-artifact@v4
# if: |
# (success() || failure()) &&
# steps.test.outcome == 'failure'
# with:
# name: test-artifact
# path: ${{ env.BUILD_DIR }}/Testing
# retention-days: 1