diff --git a/.github/workflows/ifpen_ubu2204_foss-2018b.yml b/.github/workflows/ifpen_ubu2204_foss-2018b.yml new file mode 100644 index 0000000..2b53b8c --- /dev/null +++ b/.github/workflows/ifpen_ubu2204_foss-2018b.yml @@ -0,0 +1,331 @@ +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 + ARCANE_BUILD_DIR: /__w/sharc/sharc/arcane_build + ARCANE_INSTALL_DIR: /__w/sharc/sharc/arcane_install + ARCANE_SOURCE_DIR: /__w/sharc/sharc/arcane_source + # Sharc + SHARC_BUILD_DIR: /__w/sharc/sharc/sharc_build + SHARC_INSTALL_DIR: /__w/sharc/sharc/sharc_install + SHARC_SOURCE_DIR: /__w/sharc/sharc/sharc_source + # ccache + CCACHE_COMPRESS: true + CCACHE_COMPRESSLEVEL: 6 + 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 }}" + # 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 + +concurrency: + group: ${{ github.workflow }}-${{ github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + + arcane-install: + name: Install Arcane + 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 + env: + CCACHE_DIR: /__w/sharc/sharc/arcane_ccache + + 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-${{ github.job }}-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }} + restore-keys: ifpen-ubu2204-foss-2018b-${{ github.job }}-${{ env.CM_BUILD_TYPE }}- + + # Installation + + - name: Checkout + id: checkout + if: | + (success() || failure()) + uses: actions/checkout@v4 + with: + repository: arcaneframework/framework + path: ${{ env.ARCANE_SOURCE_DIR }} + submodules: true + ref: main + + - name: Modules information + id: arcane_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.ARCANE_SOURCE_DIR }} -B ${{ env.ARCANE_BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.ARCANE_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.ARCANE_BUILD_DIR }} ${{ env.CM_BUILD_OPTS }} + + - name: Clean + id: clean + if: | + (success() || failure()) && + steps.build.outcome == 'success' + shell: bash + run: find ${{ env.ARCANE_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.ARCANE_BUILD_DIR }} + + - name: Tar install artifact + shell: bash + run: tar czf arcane-install-artifact.tar.gz ${{ env.ARCANE_INSTALL_DIR }} + + - name: Upload install artifact + uses: actions/upload-artifact@v4 + with: + name: arcane-install-artifact + path: arcane-install-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 }} + + sharc-install: + name: Install Sharc + needs: + - arcane-install + 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 + env: + CCACHE_DIR: /__w/sharc/sharc/sharc_ccache + + 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-${{ github.job }}-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }} + restore-keys: ifpen-ubu2204-foss-2018b-${{ github.job }}-${{ env.CM_BUILD_TYPE }}- + + # Installation + + - name: Checkout + id: checkout + if: | + (success() || failure()) + uses: actions/checkout@v4 + with: + path: ${{ env.SHARC_SOURCE_DIR }} + submodules: true + + - name: Download Arcane install artifact + uses: actions/download-artifact@v4 + with: + name: arcane-install-artifact + + - name: Untar Arcane install artifact + shell: bash + run: tar xf arcane-install-artifact.tar.gz -C / + + - name: Remove Arcane install artifact tar + shell: bash + run: rm -f arcane-install-artifact.tar.gz + + - name: Modules information + id: sharc_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.SHARC_SOURCE_DIR }} -B ${{ env.SHARC_BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.SHARC_INSTALL_DIR }} ${{ env.CM_CCACHE_OPTS }} -DCMAKE_BUILD_TYPE=${{ env.CM_BUILD_TYPE }} -DBUILD_SHARED_LIBS=ON -DARCANEFRAMEWORK_ROOT=${{ env.ARCANE_INSTALL_DIR }} + + - name: Build + id: build + if: | + (success() || failure()) && + steps.configure.outcome == 'success' + shell: bash + run: cmake --build ${{ env.SHARC_BUILD_DIR }} ${{ env.CM_BUILD_OPTS }} + + - name: Clean + id: clean + if: | + (success() || failure()) && + steps.build.outcome == 'success' + shell: bash + run: find ${{ env.SHARC_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.SHARC_BUILD_DIR }} + continue-on-error: true + + - name: Tar build artifact + shell: bash + run: tar czf sharc-build-artifact.tar.gz ${{ env.SHARC_BUILD_DIR }} + + - name: Upload build artifact + uses: actions/upload-artifact@v4 + with: + name: sharc-build-artifact + path: sharc-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 }} + + sharc-test: + name: Test Sharc + needs: + - arcane-install + - sharc-install + 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: + + - name: Checkout + id: checkout + if: | + (success() || failure()) + uses: actions/checkout@v4 + with: + path: ${{ env.SHARC_SOURCE_DIR }} + submodules: true + + - name: Download Arcane install artifact + uses: actions/download-artifact@v4 + with: + name: arcane-install-artifact + + - name: Untar Arcane install artifact + shell: bash + run: tar xf arcane-install-artifact.tar.gz -C / + + - name: Remove Arcane install artifact tar + shell: bash + run: rm -f arcane-install-artifact.tar.gz + + - name: Download Sharc build artifact + uses: actions/download-artifact@v4 + with: + name: sharc-build-artifact + + - name: Untar Sharc build artifact + shell: bash + run: tar xf sharc-build-artifact.tar.gz -C / + + - name: Remove Sharc build artifact tar + shell: bash + run: rm -f sharc-bulid-artifact.tar.gz + + - name: Test + id: test + shell: bash + run: ctest --test-dir ${{ env.SHARC_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.SHARC_BUILD_DIR }}/Testing + ${{ env.SHARC_BUILD_DIR }}/test + 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 0000000..6d83fd3 --- /dev/null +++ b/.github/workflows/ifpen_ubu2204_foss-2021b.yml @@ -0,0 +1,331 @@ +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 + ARCANE_BUILD_DIR: /__w/sharc/sharc/arcane_build + ARCANE_INSTALL_DIR: /__w/sharc/sharc/arcane_install + ARCANE_SOURCE_DIR: /__w/sharc/sharc/arcane_source + # Sharc + SHARC_BUILD_DIR: /__w/sharc/sharc/sharc_build + SHARC_INSTALL_DIR: /__w/sharc/sharc/sharc_install + SHARC_SOURCE_DIR: /__w/sharc/sharc/sharc_source + # ccache + CCACHE_COMPRESS: true + CCACHE_COMPRESSLEVEL: 6 + 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 }}" + # 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 + +concurrency: + group: ${{ github.workflow }}-${{ github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + + arcane-install: + name: Install Arcane + 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 + env: + CCACHE_DIR: /__w/sharc/sharc/arcane_ccache + + 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-${{ github.job }}-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }} + restore-keys: ifpen-ubu2204-foss-2021b-${{ github.job }}-${{ env.CM_BUILD_TYPE }}- + + # Installation + + - name: Checkout + id: checkout + if: | + (success() || failure()) + uses: actions/checkout@v4 + with: + repository: arcaneframework/framework + path: ${{ env.ARCANE_SOURCE_DIR }} + submodules: true + ref: main + + - name: Modules information + id: arcane_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.ARCANE_SOURCE_DIR }} -B ${{ env.ARCANE_BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.ARCANE_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.ARCANE_BUILD_DIR }} ${{ env.CM_BUILD_OPTS }} + + - name: Clean + id: clean + if: | + (success() || failure()) && + steps.build.outcome == 'success' + shell: bash + run: find ${{ env.ARCANE_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.ARCANE_BUILD_DIR }} + + - name: Tar install artifact + shell: bash + run: tar czf arcane-install-artifact.tar.gz ${{ env.ARCANE_INSTALL_DIR }} + + - name: Upload install artifact + uses: actions/upload-artifact@v4 + with: + name: arcane-install-artifact + path: arcane-install-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 }} + + sharc-install: + name: Install Sharc + needs: + - arcane-install + 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 + env: + CCACHE_DIR: /__w/sharc/sharc/sharc_ccache + + 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-${{ github.job }}-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }} + restore-keys: ifpen-ubu2204-foss-2021b-${{ github.job }}-${{ env.CM_BUILD_TYPE }}- + + # Installation + + - name: Checkout + id: checkout + if: | + (success() || failure()) + uses: actions/checkout@v4 + with: + path: ${{ env.SHARC_SOURCE_DIR }} + submodules: true + + - name: Download Arcane install artifact + uses: actions/download-artifact@v4 + with: + name: arcane-install-artifact + + - name: Untar Arcane install artifact + shell: bash + run: tar xf arcane-install-artifact.tar.gz -C / + + - name: Remove Arcane install artifact tar + shell: bash + run: rm -f arcane-install-artifact.tar.gz + + - name: Modules information + id: sharc_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.SHARC_SOURCE_DIR }} -B ${{ env.SHARC_BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.SHARC_INSTALL_DIR }} ${{ env.CM_CCACHE_OPTS }} -DCMAKE_BUILD_TYPE=${{ env.CM_BUILD_TYPE }} -DBUILD_SHARED_LIBS=ON -DARCANEFRAMEWORK_ROOT=${{ env.ARCANE_INSTALL_DIR }} + + - name: Build + id: build + if: | + (success() || failure()) && + steps.configure.outcome == 'success' + shell: bash + run: cmake --build ${{ env.SHARC_BUILD_DIR }} ${{ env.CM_BUILD_OPTS }} + + - name: Clean + id: clean + if: | + (success() || failure()) && + steps.build.outcome == 'success' + shell: bash + run: find ${{ env.SHARC_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.SHARC_BUILD_DIR }} + continue-on-error: true + + - name: Tar build artifact + shell: bash + run: tar czf sharc-build-artifact.tar.gz ${{ env.SHARC_BUILD_DIR }} + + - name: Upload build artifact + uses: actions/upload-artifact@v4 + with: + name: sharc-build-artifact + path: sharc-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 }} + + sharc-test: + name: Test Sharc + needs: + - arcane-install + - sharc-install + 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: + + - name: Checkout + id: checkout + if: | + (success() || failure()) + uses: actions/checkout@v4 + with: + path: ${{ env.SHARC_SOURCE_DIR }} + submodules: true + + - name: Download Arcane install artifact + uses: actions/download-artifact@v4 + with: + name: arcane-install-artifact + + - name: Untar Arcane install artifact + shell: bash + run: tar xf arcane-install-artifact.tar.gz -C / + + - name: Remove Arcane install artifact tar + shell: bash + run: rm -f arcane-install-artifact.tar.gz + + - name: Download Sharc build artifact + uses: actions/download-artifact@v4 + with: + name: sharc-build-artifact + + - name: Untar Sharc build artifact + shell: bash + run: tar xf sharc-build-artifact.tar.gz -C / + + - name: Remove Sharc build artifact tar + shell: bash + run: rm -f sharc-bulid-artifact.tar.gz + + - name: Test + id: test + shell: bash + run: ctest --test-dir ${{ env.SHARC_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.SHARC_BUILD_DIR }}/Testing + ${{ env.SHARC_BUILD_DIR }}/test + 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 0000000..afb5feb --- /dev/null +++ b/.github/workflows/ifpen_ubu2204_gimkl-2018b.yml @@ -0,0 +1,331 @@ +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 + ARCANE_BUILD_DIR: /__w/sharc/sharc/arcane_build + ARCANE_INSTALL_DIR: /__w/sharc/sharc/arcane_install + ARCANE_SOURCE_DIR: /__w/sharc/sharc/arcane_source + # Sharc + SHARC_BUILD_DIR: /__w/sharc/sharc/sharc_build + SHARC_INSTALL_DIR: /__w/sharc/sharc/sharc_install + SHARC_SOURCE_DIR: /__w/sharc/sharc/sharc_source + # ccache + CCACHE_COMPRESS: true + CCACHE_COMPRESSLEVEL: 6 + 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 }}" + # 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 + +concurrency: + group: ${{ github.workflow }}-${{ github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + + arcane-install: + name: Install Arcane + 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 + env: + CCACHE_DIR: /__w/sharc/sharc/arcane_ccache + + 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-${{ github.job }}-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }} + restore-keys: ifpen-ubu2204-gimkl-2018b-${{ github.job }}-${{ env.CM_BUILD_TYPE }}- + + # Installation + + - name: Checkout + id: checkout + if: | + (success() || failure()) + uses: actions/checkout@v4 + with: + repository: arcaneframework/framework + path: ${{ env.ARCANE_SOURCE_DIR }} + submodules: true + ref: main + + - name: Modules information + id: arcane_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.ARCANE_SOURCE_DIR }} -B ${{ env.ARCANE_BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.ARCANE_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.ARCANE_BUILD_DIR }} ${{ env.CM_BUILD_OPTS }} + + - name: Clean + id: clean + if: | + (success() || failure()) && + steps.build.outcome == 'success' + shell: bash + run: find ${{ env.ARCANE_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.ARCANE_BUILD_DIR }} + + - name: Tar install artifact + shell: bash + run: tar czf arcane-install-artifact.tar.gz ${{ env.ARCANE_INSTALL_DIR }} + + - name: Upload install artifact + uses: actions/upload-artifact@v4 + with: + name: arcane-install-artifact + path: arcane-install-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 }} + + sharc-install: + name: Install Sharc + needs: + - arcane-install + 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 + env: + CCACHE_DIR: /__w/sharc/sharc/sharc_ccache + + 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-${{ github.job }}-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }} + restore-keys: ifpen-ubu2204-gimkl-2018b-${{ github.job }}-${{ env.CM_BUILD_TYPE }}- + + # Installation + + - name: Checkout + id: checkout + if: | + (success() || failure()) + uses: actions/checkout@v4 + with: + path: ${{ env.SHARC_SOURCE_DIR }} + submodules: true + + - name: Download Arcane install artifact + uses: actions/download-artifact@v4 + with: + name: arcane-install-artifact + + - name: Untar Arcane install artifact + shell: bash + run: tar xf arcane-install-artifact.tar.gz -C / + + - name: Remove Arcane install artifact tar + shell: bash + run: rm -f arcane-install-artifact.tar.gz + + - name: Modules information + id: sharc_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.SHARC_SOURCE_DIR }} -B ${{ env.SHARC_BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.SHARC_INSTALL_DIR }} ${{ env.CM_CCACHE_OPTS }} -DCMAKE_BUILD_TYPE=${{ env.CM_BUILD_TYPE }} -DBUILD_SHARED_LIBS=ON -DARCANEFRAMEWORK_ROOT=${{ env.ARCANE_INSTALL_DIR }} + + - name: Build + id: build + if: | + (success() || failure()) && + steps.configure.outcome == 'success' + shell: bash + run: cmake --build ${{ env.SHARC_BUILD_DIR }} ${{ env.CM_BUILD_OPTS }} + + - name: Clean + id: clean + if: | + (success() || failure()) && + steps.build.outcome == 'success' + shell: bash + run: find ${{ env.SHARC_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.SHARC_BUILD_DIR }} + continue-on-error: true + + - name: Tar build artifact + shell: bash + run: tar czf sharc-build-artifact.tar.gz ${{ env.SHARC_BUILD_DIR }} + + - name: Upload build artifact + uses: actions/upload-artifact@v4 + with: + name: sharc-build-artifact + path: sharc-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 }} + + sharc-test: + name: Test Sharc + needs: + - arcane-install + - sharc-install + 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: + + - name: Checkout + id: checkout + if: | + (success() || failure()) + uses: actions/checkout@v4 + with: + path: ${{ env.SHARC_SOURCE_DIR }} + submodules: true + + - name: Download Arcane install artifact + uses: actions/download-artifact@v4 + with: + name: arcane-install-artifact + + - name: Untar Arcane install artifact + shell: bash + run: tar xf arcane-install-artifact.tar.gz -C / + + - name: Remove Arcane install artifact tar + shell: bash + run: rm -f arcane-install-artifact.tar.gz + + - name: Download Sharc build artifact + uses: actions/download-artifact@v4 + with: + name: sharc-build-artifact + + - name: Untar Sharc build artifact + shell: bash + run: tar xf sharc-build-artifact.tar.gz -C / + + - name: Remove Sharc build artifact tar + shell: bash + run: rm -f sharc-bulid-artifact.tar.gz + + - name: Test + id: test + shell: bash + run: ctest --test-dir ${{ env.SHARC_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.SHARC_BUILD_DIR }}/Testing + ${{ env.SHARC_BUILD_DIR }}/test + 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 0000000..79b1a0f --- /dev/null +++ b/.github/workflows/ifpen_ubu2204_gimkl-2021b.yml @@ -0,0 +1,331 @@ +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 + ARCANE_BUILD_DIR: /__w/sharc/sharc/arcane_build + ARCANE_INSTALL_DIR: /__w/sharc/sharc/arcane_install + ARCANE_SOURCE_DIR: /__w/sharc/sharc/arcane_source + # Sharc + SHARC_BUILD_DIR: /__w/sharc/sharc/sharc_build + SHARC_INSTALL_DIR: /__w/sharc/sharc/sharc_install + SHARC_SOURCE_DIR: /__w/sharc/sharc/sharc_source + # ccache + CCACHE_COMPRESS: true + CCACHE_COMPRESSLEVEL: 6 + 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 }}" + # 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 + +concurrency: + group: ${{ github.workflow }}-${{ github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + + arcane-install: + name: Install Arcane + 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 + env: + CCACHE_DIR: /__w/sharc/sharc/arcane_ccache + + 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-${{ github.job }}-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }} + restore-keys: ifpen-ubu2204-gimkl-2021b-${{ github.job }}-${{ env.CM_BUILD_TYPE }}- + + # Installation + + - name: Checkout + id: checkout + if: | + (success() || failure()) + uses: actions/checkout@v4 + with: + repository: arcaneframework/framework + path: ${{ env.ARCANE_SOURCE_DIR }} + submodules: true + ref: main + + - name: Modules information + id: arcane_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.ARCANE_SOURCE_DIR }} -B ${{ env.ARCANE_BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.ARCANE_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.ARCANE_BUILD_DIR }} ${{ env.CM_BUILD_OPTS }} + + - name: Clean + id: clean + if: | + (success() || failure()) && + steps.build.outcome == 'success' + shell: bash + run: find ${{ env.ARCANE_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.ARCANE_BUILD_DIR }} + + - name: Tar install artifact + shell: bash + run: tar czf arcane-install-artifact.tar.gz ${{ env.ARCANE_INSTALL_DIR }} + + - name: Upload install artifact + uses: actions/upload-artifact@v4 + with: + name: arcane-install-artifact + path: arcane-install-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 }} + + sharc-install: + name: Install Sharc + needs: + - arcane-install + 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 + env: + CCACHE_DIR: /__w/sharc/sharc/sharc_ccache + + 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-${{ github.job }}-${{ env.CM_BUILD_TYPE }}-${{ env.NOW }}-${{ github.run_number }} + restore-keys: ifpen-ubu2204-gimkl-2021b-${{ github.job }}-${{ env.CM_BUILD_TYPE }}- + + # Installation + + - name: Checkout + id: checkout + if: | + (success() || failure()) + uses: actions/checkout@v4 + with: + path: ${{ env.SHARC_SOURCE_DIR }} + submodules: true + + - name: Download Arcane install artifact + uses: actions/download-artifact@v4 + with: + name: arcane-install-artifact + + - name: Untar Arcane install artifact + shell: bash + run: tar xf arcane-install-artifact.tar.gz -C / + + - name: Remove Arcane install artifact tar + shell: bash + run: rm -f arcane-install-artifact.tar.gz + + - name: Modules information + id: sharc_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.SHARC_SOURCE_DIR }} -B ${{ env.SHARC_BUILD_DIR }} -DCMAKE_INSTALL_PREFIX=${{ env.SHARC_INSTALL_DIR }} ${{ env.CM_CCACHE_OPTS }} -DCMAKE_BUILD_TYPE=${{ env.CM_BUILD_TYPE }} -DBUILD_SHARED_LIBS=ON -DARCANEFRAMEWORK_ROOT=${{ env.ARCANE_INSTALL_DIR }} + + - name: Build + id: build + if: | + (success() || failure()) && + steps.configure.outcome == 'success' + shell: bash + run: cmake --build ${{ env.SHARC_BUILD_DIR }} ${{ env.CM_BUILD_OPTS }} + + - name: Clean + id: clean + if: | + (success() || failure()) && + steps.build.outcome == 'success' + shell: bash + run: find ${{ env.SHARC_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.SHARC_BUILD_DIR }} + continue-on-error: true + + - name: Tar build artifact + shell: bash + run: tar czf sharc-build-artifact.tar.gz ${{ env.SHARC_BUILD_DIR }} + + - name: Upload build artifact + uses: actions/upload-artifact@v4 + with: + name: sharc-build-artifact + path: sharc-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 }} + + sharc-test: + name: Test Sharc + needs: + - arcane-install + - sharc-install + 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: + + - name: Checkout + id: checkout + if: | + (success() || failure()) + uses: actions/checkout@v4 + with: + path: ${{ env.SHARC_SOURCE_DIR }} + submodules: true + + - name: Download Arcane install artifact + uses: actions/download-artifact@v4 + with: + name: arcane-install-artifact + + - name: Untar Arcane install artifact + shell: bash + run: tar xf arcane-install-artifact.tar.gz -C / + + - name: Remove Arcane install artifact tar + shell: bash + run: rm -f arcane-install-artifact.tar.gz + + - name: Download Sharc build artifact + uses: actions/download-artifact@v4 + with: + name: sharc-build-artifact + + - name: Untar Sharc build artifact + shell: bash + run: tar xf sharc-build-artifact.tar.gz -C / + + - name: Remove Sharc build artifact tar + shell: bash + run: rm -f sharc-bulid-artifact.tar.gz + + - name: Test + id: test + shell: bash + run: ctest --test-dir ${{ env.SHARC_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.SHARC_BUILD_DIR }}/Testing + ${{ env.SHARC_BUILD_DIR }}/test + retention-days: 1