Add support for default runtime in command line argument #1138
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |