CMake : add support for RLM protection #1408
Workflow file for this run
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/2018b | |
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: "-j4" | |
CM_BUILD_TYPE: Release | |
CM_CCACHE_OPTS: "-DCMAKE_CXX_COMPILER_LAUNCHER=ccache" | |
# CTest | |
CT_OPTS: "--timeout 300 --output-on-failure --exclude-regex '(^hydro5_4proc_3sd_4proc$|^alien.interface.c.seq.mpi-1$|^alien.interface.fortran.seq.mpi-1$|.petsc.mumps)' ${{ 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-2018b: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-2018b-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }} | |
restore-keys: ifpen-el9-gimkl-2018b-${{ 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 }} -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 -DALIEN_BUILD_COMPONENT=all -DALIEN_PLUGIN_HYPRE=ON -DALIEN_PLUGIN_PETSC=ON -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-2018b-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: env LD_LIBRARY_PATH=${{ env.BUILD_DIR }}/${{ env.EXT_LIB_SUBDIR }}:${LD_LIBRARY_PATH} 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 |