Skip to content

Merge pull request #1680 from arcaneframework/dev/gg-do-not-handle-in… #4648

Merge pull request #1680 from arcaneframework/dev/gg-do-not-handle-in…

Merge pull request #1680 from arcaneframework/dev/gg-do-not-handle-in… #4648

# CI to compile in all components (Arccon/Arccore/Axlstar/Arcane) together using 'vcpkg'
name: compile-all-vcpkg
on:
workflow_dispatch:
push:
branches:
- main
pull_request:
branches:
- main
paths-ignore:
- '**.css'
- '**.dox'
- '**.doxyfile'
- '**.geo'
- '**.goto'
- '**.html'
- '**.jpg'
- '**.js'
- '**.markdown'
- '**.md'
- '**.odg'
- '**.old'
- '**.png'
- '**.py'
- '**.samples'
- '**.svg'
- '**.webp'
- '**.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true
jobs:
job:
name: ${{ matrix.full_name }}-ci-direct
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-20.04
full_name: 'ubuntu-20.04'
package_name: 'ubuntu-20.04'
triplet: x64-linux-dynamic
vcpkg_os: ubuntu-20.04
cmake_specific_args : '-DARCCORE_BUILD_MODE=Debug -DCMAKE_BUILD_TYPE=Debug'
ctest_specific_args : '-I 1,140'
- os: ubuntu-22.04
full_name: 'ubuntu-22.04'
package_name: 'ubuntu-22.04'
triplet: x64-linux-dynamic
vcpkg_os: ubuntu-22.04
cmake_specific_args : '-DALIEN_BUILD_COMPONENT=all -DARCCORE_BUILD_MODE=Debug -DCMAKE_BUILD_TYPE=Debug'
ctest_specific_args : '-I 1,140'
- os: ubuntu-22.04
full_name: 'ubuntu-cxx20-22.04'
package_name: 'ubuntu-22.04'
triplet: x64-linux-dynamic
vcpkg_os: ubuntu-22.04
cmake_specific_args : '-DALIEN_BUILD_COMPONENT=all -DARCCORE_BUILD_MODE=Debug -DCMAKE_BUILD_TYPE=Debug -DARCCORE_CXX_STANDARD=20 -DARCANE_ENABLE_DOTNET_PYTHON_WRAPPER=ON'
ctest_specific_args : '-I 1,150'
- os: 'windows-2019'
full_name: 'windows-2019-msmpi'
package_name: 'windows-2019-msmpi'
triplet: x64-windows
vcpkg_os: windows-2019
cmake_specific_args : '-DCMAKE_BUILD_TYPE=Release'
ctest_specific_args : '-I 1,160'
- os: 'windows-2019'
full_name: 'windows-2019-intelmpi'
package_name: 'windows-2019-intelmpi'
triplet: x64-windows
vcpkg_os: windows-2019
cmake_specific_args : '-DCMAKE_BUILD_TYPE=Release'
ctest_specific_args : '-I 1,160'
- os: 'windows-2022'
full_name: 'windows-2022-intelmpi'
package_name: 'windows-2022-intelmpi'
triplet: x64-windows
vcpkg_os: windows-2022
cmake_specific_args : '-DCMAKE_BUILD_TYPE=Release'
ctest_specific_args : '-I 1,10'
- os: 'windows-2022'
full_name: 'windows-2022-cxx20-intelmpi'
package_name: 'windows-2022-intelmpi'
triplet: x64-windows
vcpkg_os: windows-2022
cmake_specific_args : '-DCMAKE_BUILD_TYPE=Release -DARCCORE_CXX_STANDARD=20'
ctest_specific_args : '-I 1,10'
env:
# Indique pour IntelMPI de ne pas faire d'attente active
I_MPI_WAIT_MODE: 1
# Pour indiquer a OpenMPI qu'on utilise plus de PE que de coeurs disponibles
OMPI_MCA_rmaps_base_oversubscribe : true
CCACHE_BASEDIR: ${{github.workspace}}
CCACHE_DIR: '${{ github.workspace }}/ccache'
CCACHE_COMPRESS: true
CCACHE_COMPRESSLEVEL: 6
CCACHE_MAXSIZE: 5G
# Indicates the CMake build directory where project files and binaries are being produced.
CMAKE_BUILD_DIR: ${{ github.workspace }}/builddir/
# Indicates the location of the vcpkg as a Git submodule of the project repository.
FRAMEWORKCI_ROOT_PATH: '${{ github.workspace }}/../../build_base'
VCPKG_ROOT: '${{ github.workspace }}/../../build_base/framework-ci/vcpkg'
VCPKG_BUILD_DIR: '${{ github.workspace }}/../../build_base/framework-ci/vcpkg'
BUILD_COMMANDS_ROOT: '${{ github.workspace }}/../../build_base/framework-ci/_build'
VCPKG_INSTALL_HASH_PACKAGE_NAME: '1.6.1-${{ matrix.package_name }}-${{ matrix.triplet }}'
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
FRAMEWORKCI_BRANCH: main
steps:
- name: Checkout actions
uses: actions/checkout@v4
with:
submodules: true
- name: Checkout framework-ci
uses: actions/checkout@v4
with:
repository: ${{ github.repository_owner }}/framework-ci
path: framework-ci
ref: ${{ env.FRAMEWORKCI_BRANCH }}
submodules: true
- name: Move framework-ci
shell: 'bash'
run: |
mkdir -p '${{ env.FRAMEWORKCI_ROOT_PATH }}'
ls -lart '${{ github.workspace }}/framework-ci'
cd '${{ github.workspace }}' && mv framework-ci '${{ env.FRAMEWORKCI_ROOT_PATH }}'
ls -lart '${{ env.FRAMEWORKCI_ROOT_PATH }}'
- name: Setup environment
shell: 'bash'
run: |
echo "${RUNNER_TEMP}/local_bin_dir/bin" >> $GITHUB_PATH
echo "${RUNNER_TEMP}/local_bin_dir/cmake/bin" >> $GITHUB_PATH
echo Path variable is: ${PATH}
echo CMake path is: `which cmake`
cmake --version
cmake -DNUGET_PASSWORD="${{ secrets.GITHUB_TOKEN }}" -P '${{ env.BUILD_COMMANDS_ROOT }}/Setup.cmake'
mkdir -p ${{ env.CCACHE_DIR }}
cp "${{ github.workspace }}/.github/compile-vcpkg-global.json" "${{ github.workspace }}/global.json"
- name: Setup .Net
uses: actions/setup-dotnet@v4
with:
dotnet-version: '6.0.x'
- name: Install pnumpy
shell: 'bash'
run: |
pip3 install numpy
- name: Install pythonnet
shell: 'bash'
run: |
pip3 install pythonnet
pip3 install numpy
- name: Get cache for 'ccache' tool
uses: actions/cache@v4
with:
path: ${{env.CCACHE_DIR}}
key: framework-ccache1-${{matrix.full_name}}-${{ github.run_number }}
restore-keys: |
framework-ccache1-${{matrix.full_name}}
- name: 'Display environment after setup'
shell: 'bash'
continue-on-error: true
run: |
echo 'VCPKG_BUILD_DIR=${VCPKG_BUILD_DIR}'
echo 'Content of local_bin_dir'
ls -lart "${RUNNER_TEMP}/local_bin_dir"
echo 'Content of local_bin_dir/bin'
ls -lart "${RUNNER_TEMP}/local_bin_dir/bin"
echo 'Content of local_bin_dir/cmake'
ls -lart "${RUNNER_TEMP}/local_bin_dir/cmake"
echo Path variable is: ${PATH}
echo CMake path is: `which cmake`
echo Ninja path is: `which ninja`
echo CCache path is: `which ccache`
echo Dotnet path is: `which dotnet`
ccache -z
cmake --version
- name: 'Untar vcpkg bootstrap cache'
shell: 'bash'
run: |
cmake -DHASH_PACKAGE_NAME="${{ env.VCPKG_INSTALL_HASH_PACKAGE_NAME }}" -DVCPKG_BUILD_DIR='${{ env.VCPKG_BUILD_DIR }}' -P '${{ env.BUILD_COMMANDS_ROOT }}/vcpkg_cache/DoUntar.cmake'
ls -lart '${{ env.VCPKG_BUILD_DIR }}'
- name: Show content of workspace after cache has been restored
shell: bash
run: find $RUNNER_WORKSPACE
- uses: ilammy/msvc-dev-cmd@v1
- name: Configure build script
shell: bash
run: |
cmake -S "${{ github.workspace }}/_common/build_all" -B "${{ env.CMAKE_BUILD_DIR }}" -DCMAKE_VERBOSE_MAKEFILE=TRUE -DVCPKG_INSTALLED_DIR="${{ env.VCPKG_BUILD_DIR }}/installed" -DVCPKG_TARGET_TRIPLET='${{ matrix.triplet }}' -DBUILD_SHARED_LIBS=TRUE -DCMAKE_TOOLCHAIN_FILE="${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake" ${{ matrix.cmake_specific_args }} -DCMAKE_CXX_COMPILER_LAUNCHER="ccache" -GNinja
- name: Dump Some Generated files
shell: bash
run: |
echo "Dump CMakeCache.txt"
cat "${{ env.CMAKE_BUILD_DIR }}/CMakeCache.txt"
echo "Dump arcane_core_config.h"
cat "${{ env.CMAKE_BUILD_DIR }}/arcane_core_config.h"
- name: Build arcane
shell: bash
run: |
cmake --build "${{ env.CMAKE_BUILD_DIR }}"
cmake --build "${{ env.CMAKE_BUILD_DIR }}" --target copy_dlls
- name: Get 'ccache' status
run: ccache -s -v
- name: Test arcane
shell: bash
run: |
cd "${{ env.CMAKE_BUILD_DIR }}" && ctest --output-on-failure ${{ matrix.ctest_specific_args }}
- name: Test Aleph kappa
if: matrix.os != 'windows-2022'
shell: bash
run: |
cd "${{ env.CMAKE_BUILD_DIR }}" && ctest --output-on-failure ${{ matrix.ctest_specific_args }} -R kappa
- name: Test Python wrapper
shell: bash
run: |
cd "${{ env.CMAKE_BUILD_DIR }}" && ctest --output-on-failure -V -R python_test