diff --git a/.github/workflows/ifpen_ubu2204_foss-2018b.yml b/.github/workflows/ifpen_ubu2204_foss-2018b.yml new file mode 100644 index 000000000..9bf6c9a03 --- /dev/null +++ b/.github/workflows/ifpen_ubu2204_foss-2018b.yml @@ -0,0 +1,201 @@ +name: IFPEN ubu2204 foss/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 ${{ github.event.inputs.ctest_options }}" + # OpenMPI + OMPI_MCA_rmaps_base_oversubscribe : true + # 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-foss-2018b:ubu2204 + #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-ubu2204-foss-2018b-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }} + restore-keys: ifpen-ubu2204-foss-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-foss-2018b-rt:ubu2204 + #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 diff --git a/.github/workflows/ifpen_ubu2204_foss-2021b.yml b/.github/workflows/ifpen_ubu2204_foss-2021b.yml new file mode 100644 index 000000000..e4110ec61 --- /dev/null +++ b/.github/workflows/ifpen_ubu2204_foss-2021b.yml @@ -0,0 +1,201 @@ +name: IFPEN ubu2204 foss/2021b + +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 60 --output-on-failure ${{ github.event.inputs.ctest_options }}" + # OpenMPI + OMPI_MCA_rmaps_base_oversubscribe : true + # 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-foss-2021b:ubu2204 + #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-ubu2204-foss-2021b-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }} + restore-keys: ifpen-ubu2204-foss-2021b-${{ 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 -DARCANE_DISABLE_PERFCOUNTER_TESTS=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-foss-2021b-rt:ubu2204 + #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 diff --git a/.github/workflows/ifpen_ubu2204_gimkl-2018b.yml b/.github/workflows/ifpen_ubu2204_gimkl-2018b.yml new file mode 100644 index 000000000..59d084bcb --- /dev/null +++ b/.github/workflows/ifpen_ubu2204_gimkl-2018b.yml @@ -0,0 +1,201 @@ +name: IFPEN ubu2204 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|^vtk_vtu$|^ios_vtu$|^ios_xmf$)' ${{ 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:ubu2204 + #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-ubu2204-gimkl-2018b-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }} + restore-keys: ifpen-ubu2204-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:ubu2204 + #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 diff --git a/.github/workflows/ifpen_ubu2204_gimkl-2021b-cxx20.yml b/.github/workflows/ifpen_ubu2204_gimkl-2021b-cxx20.yml new file mode 100644 index 000000000..58b0ba591 --- /dev/null +++ b/.github/workflows/ifpen_ubu2204_gimkl-2021b-cxx20.yml @@ -0,0 +1,205 @@ +name: IFPEN ubu2204 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:ubu2204 + #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-ubu2204-gimkl-2021b-cxx20-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }} + restore-keys: ifpen-ubu2204-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:ubu2204 + # #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 diff --git a/.github/workflows/ifpen_ubu2204_gimkl-2021b.yml b/.github/workflows/ifpen_ubu2204_gimkl-2021b.yml new file mode 100644 index 000000000..67d06b4a1 --- /dev/null +++ b/.github/workflows/ifpen_ubu2204_gimkl-2021b.yml @@ -0,0 +1,205 @@ +name: IFPEN ubu2204 gimkl/2021b + +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 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:ubu2204 + #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-ubu2204-gimkl-2021b-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }} + restore-keys: ifpen-ubu2204-gimkl-2021b-${{ 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 -DARCANE_DISABLE_PERFCOUNTER_TESTS=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:ubu2204 + #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