-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
gazoppce
committed
Nov 22, 2024
1 parent
a3af945
commit 1599a3f
Showing
4 changed files
with
1,324 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
Oops, something went wrong.