From 9e582aaef52fe47a32a641b0c8ace334031ac0f1 Mon Sep 17 00:00:00 2001 From: Scott Wittenburg Date: Thu, 20 Jul 2023 14:39:43 -0600 Subject: [PATCH 1/2] ci: Use ccache in linux/mac github actions builds --- .github/workflows/everything.yml | 81 ++++++++++++++++++- scripts/ci/cmake/ci-el8-icc-ompi.cmake | 2 + scripts/ci/cmake/ci-el8-icc-serial.cmake | 2 + scripts/ci/cmake/ci-el8-oneapi-ompi.cmake | 2 + scripts/ci/cmake/ci-el8-oneapi-serial.cmake | 2 + .../cmake/ci-macos1015-xcode1211-make.cmake | 2 + .../ci/cmake/ci-macos11-xcode131-ninja.cmake | 2 + .../cmake/ci-macos11-xcode13_0-serial.cmake | 2 + .../cmake/ci-macos12-xcode13_4_1-serial.cmake | 2 + .../cmake/ci-ubuntu20.04-clang10-ompi.cmake | 2 + .../cmake/ci-ubuntu20.04-clang10-serial.cmake | 2 + .../ci/cmake/ci-ubuntu20.04-clang6-ompi.cmake | 2 + .../cmake/ci-ubuntu20.04-clang6-serial.cmake | 2 + .../ci/cmake/ci-ubuntu20.04-gcc10-mpich.cmake | 2 + .../ci/cmake/ci-ubuntu20.04-gcc10-ompi.cmake | 2 + .../cmake/ci-ubuntu20.04-gcc10-serial.cmake | 2 + .../ci/cmake/ci-ubuntu20.04-gcc11-ompi.cmake | 2 + .../cmake/ci-ubuntu20.04-gcc11-serial.cmake | 2 + .../ci/cmake/ci-ubuntu20.04-gcc8-ompi.cmake | 2 + .../ci/cmake/ci-ubuntu20.04-gcc8-serial.cmake | 2 + .../ci/cmake/ci-ubuntu20.04-gcc9-ompi.cmake | 2 + .../ci/cmake/ci-ubuntu20.04-gcc9-serial.cmake | 2 + .../ci/cmake/ci-win2019-vs2019-msmpi.cmake | 2 +- .../ci/cmake/ci-win2019-vs2019-ninja.cmake | 2 +- scripts/ci/cmake/ci-win2019-vs2019-ompi.cmake | 2 +- .../ci/cmake/ci-win2019-vs2019-serial.cmake | 2 +- scripts/ci/cmake/ci-win2022-vs2022-ompi.cmake | 2 +- .../ci/cmake/ci-win2022-vs2022-serial.cmake | 2 +- scripts/ci/gh-actions/macos-setup.sh | 3 + scripts/ci/images/Dockerfile.ci-el8-intel | 1 + .../Dockerfile.ci-spack-ubuntu20.04-base | 4 +- 31 files changed, 135 insertions(+), 8 deletions(-) diff --git a/.github/workflows/everything.yml b/.github/workflows/everything.yml index 4d3cad21c8..5d67b0669a 100644 --- a/.github/workflows/everything.yml +++ b/.github/workflows/everything.yml @@ -13,6 +13,17 @@ # may have made it to the target branch after the pull_request was started. ####################################### +####################################### +# Note regarding restore/save of cache for use by ccache: +# +# We only save cache on main branch runs. PR workflows only consume the +# cache to avoid exceeding the 10 GB limit, which can cause cache thrashing. +# Also, we only save the cache if there was *not* an exact match when cache +# was restored. This avoids attempting to write to an existing cache key, +# which results in failure to save the cache. While failure to save doesn't +# cause job failures, it seems a waste and is easily avoidable. +####################################### + name: GitHub Actions on: @@ -105,6 +116,10 @@ jobs: GH_YML_MATRIX_OS: ${{ matrix.os }} GH_YML_MATRIX_COMPILER: ${{ matrix.compiler }} GH_YML_MATRIX_PARALLEL: ${{ matrix.parallel }} + CCACHE_BASEDIR: "${GITHUB_WORKSPACE}" + CCACHE_DIR: "${GITHUB_WORKSPACE}/.ccache" + CCACHE_COMPRESS: true + CCACHE_COMPRESSLEVEL: 6 strategy: fail-fast: false @@ -131,6 +146,16 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} path: source + - name: Restore cache + uses: actions/cache/restore@v3 + id: restore-cache + with: + path: .ccache + key: ccache-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.parallel }}-${{ github.sha }} + restore-keys: | + ccache-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.parallel }} + - name: Configure cache + run: ccache -z - name: Setup run: gha/scripts/ci/gh-actions/linux-setup.sh - name: Update @@ -139,6 +164,15 @@ jobs: run: gha/scripts/ci/gh-actions/run.sh configure - name: Build run: gha/scripts/ci/gh-actions/run.sh build + - name: Print ccache statistics + run: ccache -s + - name: Save cache + uses: actions/cache/save@v3 + if: github.ref_name == 'master' && steps.restore-cache.outputs.cache-hit == 'false' + id: save-cache + with: + path: .ccache + key: ccache-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.parallel }}-${{ github.sha }} - name: Test run: gha/scripts/ci/gh-actions/run.sh test @@ -156,6 +190,10 @@ jobs: GH_YML_MATRIX_OS: ${{ matrix.os }} GH_YML_MATRIX_COMPILER: ${{ matrix.compiler }} GH_YML_MATRIX_PARALLEL: ${{ matrix.parallel }} + CCACHE_BASEDIR: "${GITHUB_WORKSPACE}" + CCACHE_DIR: "${GITHUB_WORKSPACE}/.ccache" + CCACHE_COMPRESS: true + CCACHE_COMPRESSLEVEL: 6 strategy: fail-fast: false @@ -172,6 +210,16 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} path: source + - name: Restore cache + uses: actions/cache/restore@v3 + id: restore-cache + with: + path: .ccache + key: ccache-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.parallel }}-${{ github.sha }} + restore-keys: | + ccache-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.parallel }} + - name: Configure cache + run: ccache -z - name: Setup run: gha/scripts/ci/gh-actions/linux-setup.sh - name: Update @@ -180,6 +228,15 @@ jobs: run: gha/scripts/ci/gh-actions/run.sh configure - name: Build run: gha/scripts/ci/gh-actions/run.sh build + - name: Print ccache statistics + run: ccache -s + - name: Save cache + uses: actions/cache/save@v3 + if: github.ref_name == 'master' && steps.restore-cache.outputs.cache-hit == 'false' + id: save-cache + with: + path: .ccache + key: ccache-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.parallel }}-${{ github.sha }} - name: Test run: gha/scripts/ci/gh-actions/run.sh test @@ -194,6 +251,10 @@ jobs: GH_YML_MATRIX_OS: ${{ matrix.os }} GH_YML_MATRIX_COMPILER: ${{ matrix.compiler }} GH_YML_MATRIX_PARALLEL: ${{ matrix.parallel }} + CCACHE_BASEDIR: "${GITHUB_WORKSPACE}" + CCACHE_DIR: "${GITHUB_WORKSPACE}/.ccache" + CCACHE_COMPRESS: true + CCACHE_COMPRESSLEVEL: 6 strategy: fail-fast: false @@ -218,16 +279,34 @@ jobs: path: source - name: Setup run: gha/scripts/ci/gh-actions/macos-setup.sh + - name: Restore cache + uses: actions/cache/restore@v3 + id: restore-cache + with: + path: .ccache + key: ccache-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.parallel }}-${{ github.sha }} + restore-keys: | + ccache-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.parallel }} + - name: Configure cache + run: ccache -z - name: Update run: gha/scripts/ci/gh-actions/run.sh update - name: Configure run: gha/scripts/ci/gh-actions/run.sh configure - name: Build run: gha/scripts/ci/gh-actions/run.sh build + - name: Print ccache statistics + run: ccache -s + - name: Save cache + uses: actions/cache/save@v3 + if: github.ref_name == 'master' && steps.restore-cache.outputs.cache-hit == 'false' + id: save-cache + with: + path: .ccache + key: ccache-${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.parallel }}-${{ github.sha }} - name: Test run: gha/scripts/ci/gh-actions/run.sh test - windows: needs: [format, git_checks] if: needs.git_checks.outputs.num_code_changes > 0 diff --git a/scripts/ci/cmake/ci-el8-icc-ompi.cmake b/scripts/ci/cmake/ci-el8-icc-ompi.cmake index 8780804c15..940150f1f3 100644 --- a/scripts/ci/cmake/ci-el8-icc-ompi.cmake +++ b/scripts/ci/cmake/ci-el8-icc-ompi.cmake @@ -19,6 +19,8 @@ ADIOS2_USE_SZ:BOOL=ON ADIOS2_USE_ZeroMQ:STRING=ON ADIOS2_USE_ZFP:BOOL=ON +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall -diag-disable=10441 CMAKE_C_FLAGS_DEBUG:STRING=-g -O0 CMAKE_CXX_FLAGS:STRING=-Wall -diag-disable=10441 diff --git a/scripts/ci/cmake/ci-el8-icc-serial.cmake b/scripts/ci/cmake/ci-el8-icc-serial.cmake index 3aa93d3da6..65b9d1c8a6 100644 --- a/scripts/ci/cmake/ci-el8-icc-serial.cmake +++ b/scripts/ci/cmake/ci-el8-icc-serial.cmake @@ -15,6 +15,8 @@ ADIOS2_USE_SZ:BOOL=ON ADIOS2_USE_ZeroMQ:STRING=ON ADIOS2_USE_ZFP:BOOL=ON +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall -diag-disable=10441 CMAKE_C_FLAGS_DEBUG:STRING=-g -O0 CMAKE_CXX_FLAGS:STRING=-Wall -diag-disable=10441 diff --git a/scripts/ci/cmake/ci-el8-oneapi-ompi.cmake b/scripts/ci/cmake/ci-el8-oneapi-ompi.cmake index ee8163d468..ceed5a8133 100644 --- a/scripts/ci/cmake/ci-el8-oneapi-ompi.cmake +++ b/scripts/ci/cmake/ci-el8-oneapi-ompi.cmake @@ -19,6 +19,8 @@ ADIOS2_USE_SZ:BOOL=ON ADIOS2_USE_ZeroMQ:STRING=ON ADIOS2_USE_ZFP:BOOL=ON +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_C_FLAGS_DEBUG:STRING=-g -O0 CMAKE_CXX_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-el8-oneapi-serial.cmake b/scripts/ci/cmake/ci-el8-oneapi-serial.cmake index 0171b05df4..36a4299512 100644 --- a/scripts/ci/cmake/ci-el8-oneapi-serial.cmake +++ b/scripts/ci/cmake/ci-el8-oneapi-serial.cmake @@ -15,6 +15,8 @@ ADIOS2_USE_SZ:BOOL=ON ADIOS2_USE_ZeroMQ:STRING=ON ADIOS2_USE_ZFP:BOOL=ON +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_C_FLAGS_DEBUG:STRING=-g -O0 CMAKE_CXX_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-macos1015-xcode1211-make.cmake b/scripts/ci/cmake/ci-macos1015-xcode1211-make.cmake index 5852b90ad3..79c9754864 100644 --- a/scripts/ci/cmake/ci-macos1015-xcode1211-make.cmake +++ b/scripts/ci/cmake/ci-macos1015-xcode1211-make.cmake @@ -8,6 +8,8 @@ ADIOS2_USE_Fortran:BOOL=ON ADIOS2_USE_MPI:BOOL=OFF ADISO2_USE_Python:BOOL=ON +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-macos11-xcode131-ninja.cmake b/scripts/ci/cmake/ci-macos11-xcode131-ninja.cmake index 9ae02889fe..f70190daf8 100644 --- a/scripts/ci/cmake/ci-macos11-xcode131-ninja.cmake +++ b/scripts/ci/cmake/ci-macos11-xcode131-ninja.cmake @@ -8,6 +8,8 @@ ADIOS2_USE_Fortran:BOOL=ON ADIOS2_USE_MPI:BOOL=OFF ADIOS2_USE_Python:BOOL=ON +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-macos11-xcode13_0-serial.cmake b/scripts/ci/cmake/ci-macos11-xcode13_0-serial.cmake index 5e1bd36186..6c7499bb73 100644 --- a/scripts/ci/cmake/ci-macos11-xcode13_0-serial.cmake +++ b/scripts/ci/cmake/ci-macos11-xcode13_0-serial.cmake @@ -8,6 +8,8 @@ ADIOS2_USE_Fortran:BOOL=ON ADIOS2_USE_MPI:BOOL=OFF ADISO2_USE_Python:BOOL=ON +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-macos12-xcode13_4_1-serial.cmake b/scripts/ci/cmake/ci-macos12-xcode13_4_1-serial.cmake index 37ceb637c3..e9c28d0a63 100644 --- a/scripts/ci/cmake/ci-macos12-xcode13_4_1-serial.cmake +++ b/scripts/ci/cmake/ci-macos12-xcode13_4_1-serial.cmake @@ -8,6 +8,8 @@ ADIOS2_USE_Fortran:BOOL=ON ADIOS2_USE_MPI:BOOL=OFF ADISO2_USE_Python:BOOL=ON +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-ubuntu20.04-clang10-ompi.cmake b/scripts/ci/cmake/ci-ubuntu20.04-clang10-ompi.cmake index 7ebb831301..a5bfaa0c73 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-clang10-ompi.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-clang10-ompi.cmake @@ -27,6 +27,8 @@ Python_ROOT_DIR:PATH=${PY_ROOT} Python_FIND_STRATEGY:STRING=LOCATION Python_FIND_FRAMEWORK:STRING=FIRST +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-ubuntu20.04-clang10-serial.cmake b/scripts/ci/cmake/ci-ubuntu20.04-clang10-serial.cmake index 96d0c1fe3e..9b60d90964 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-clang10-serial.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-clang10-serial.cmake @@ -23,6 +23,8 @@ Python_ROOT_DIR:PATH=${PY_ROOT} Python_FIND_STRATEGY:STRING=LOCATION Python_FIND_FRAMEWORK:STRING=FIRST +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-ubuntu20.04-clang6-ompi.cmake b/scripts/ci/cmake/ci-ubuntu20.04-clang6-ompi.cmake index 00c3577544..27015806d8 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-clang6-ompi.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-clang6-ompi.cmake @@ -27,6 +27,8 @@ Python_ROOT_DIR:PATH=${PY_ROOT} Python_FIND_STRATEGY:STRING=LOCATION Python_FIND_FRAMEWORK:STRING=FIRST +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-ubuntu20.04-clang6-serial.cmake b/scripts/ci/cmake/ci-ubuntu20.04-clang6-serial.cmake index 0357b98fc5..f298fe20b6 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-clang6-serial.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-clang6-serial.cmake @@ -23,6 +23,8 @@ Python_ROOT_DIR:PATH=${PY_ROOT} Python_FIND_STRATEGY:STRING=LOCATION Python_FIND_FRAMEWORK:STRING=FIRST +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-ubuntu20.04-gcc10-mpich.cmake b/scripts/ci/cmake/ci-ubuntu20.04-gcc10-mpich.cmake index a51bfe97a8..1db0a5ee9f 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-gcc10-mpich.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-gcc10-mpich.cmake @@ -27,6 +27,8 @@ Python_ROOT_DIR:PATH=${PY_ROOT} Python_FIND_STRATEGY:STRING=LOCATION Python_FIND_FRAMEWORK:STRING=FIRST +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-ubuntu20.04-gcc10-ompi.cmake b/scripts/ci/cmake/ci-ubuntu20.04-gcc10-ompi.cmake index 8bc947c2d8..b56bfc5f62 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-gcc10-ompi.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-gcc10-ompi.cmake @@ -27,6 +27,8 @@ Python_ROOT_DIR:PATH=${PY_ROOT} Python_FIND_STRATEGY:STRING=LOCATION Python_FIND_FRAMEWORK:STRING=FIRST +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-ubuntu20.04-gcc10-serial.cmake b/scripts/ci/cmake/ci-ubuntu20.04-gcc10-serial.cmake index 4801f3f4d9..2e2855cb92 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-gcc10-serial.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-gcc10-serial.cmake @@ -23,6 +23,8 @@ Python_ROOT_DIR:PATH=${PY_ROOT} Python_FIND_STRATEGY:STRING=LOCATION Python_FIND_FRAMEWORK:STRING=FIRST +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-ubuntu20.04-gcc11-ompi.cmake b/scripts/ci/cmake/ci-ubuntu20.04-gcc11-ompi.cmake index 8bc947c2d8..b56bfc5f62 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-gcc11-ompi.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-gcc11-ompi.cmake @@ -27,6 +27,8 @@ Python_ROOT_DIR:PATH=${PY_ROOT} Python_FIND_STRATEGY:STRING=LOCATION Python_FIND_FRAMEWORK:STRING=FIRST +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-ubuntu20.04-gcc11-serial.cmake b/scripts/ci/cmake/ci-ubuntu20.04-gcc11-serial.cmake index 4801f3f4d9..2e2855cb92 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-gcc11-serial.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-gcc11-serial.cmake @@ -23,6 +23,8 @@ Python_ROOT_DIR:PATH=${PY_ROOT} Python_FIND_STRATEGY:STRING=LOCATION Python_FIND_FRAMEWORK:STRING=FIRST +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-ubuntu20.04-gcc8-ompi.cmake b/scripts/ci/cmake/ci-ubuntu20.04-gcc8-ompi.cmake index 8bc947c2d8..b56bfc5f62 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-gcc8-ompi.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-gcc8-ompi.cmake @@ -27,6 +27,8 @@ Python_ROOT_DIR:PATH=${PY_ROOT} Python_FIND_STRATEGY:STRING=LOCATION Python_FIND_FRAMEWORK:STRING=FIRST +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-ubuntu20.04-gcc8-serial.cmake b/scripts/ci/cmake/ci-ubuntu20.04-gcc8-serial.cmake index 4801f3f4d9..2e2855cb92 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-gcc8-serial.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-gcc8-serial.cmake @@ -23,6 +23,8 @@ Python_ROOT_DIR:PATH=${PY_ROOT} Python_FIND_STRATEGY:STRING=LOCATION Python_FIND_FRAMEWORK:STRING=FIRST +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-ubuntu20.04-gcc9-ompi.cmake b/scripts/ci/cmake/ci-ubuntu20.04-gcc9-ompi.cmake index 8bc947c2d8..b56bfc5f62 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-gcc9-ompi.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-gcc9-ompi.cmake @@ -27,6 +27,8 @@ Python_ROOT_DIR:PATH=${PY_ROOT} Python_FIND_STRATEGY:STRING=LOCATION Python_FIND_FRAMEWORK:STRING=FIRST +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-ubuntu20.04-gcc9-serial.cmake b/scripts/ci/cmake/ci-ubuntu20.04-gcc9-serial.cmake index 4801f3f4d9..2e2855cb92 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-gcc9-serial.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-gcc9-serial.cmake @@ -23,6 +23,8 @@ Python_ROOT_DIR:PATH=${PY_ROOT} Python_FIND_STRATEGY:STRING=LOCATION Python_FIND_FRAMEWORK:STRING=FIRST +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache CMAKE_C_FLAGS:STRING=-Wall CMAKE_CXX_FLAGS:STRING=-Wall CMAKE_Fortran_FLAGS:STRING=-Wall diff --git a/scripts/ci/cmake/ci-win2019-vs2019-msmpi.cmake b/scripts/ci/cmake/ci-win2019-vs2019-msmpi.cmake index 203dec8fd9..9783a487ae 100644 --- a/scripts/ci/cmake/ci-win2019-vs2019-msmpi.cmake +++ b/scripts/ci/cmake/ci-win2019-vs2019-msmpi.cmake @@ -19,6 +19,6 @@ MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS} set(CTEST_TEST_ARGS PARALLEL_LEVEL 1) #set(CTEST_CMAKE_GENERATOR "Ninja") set(CTEST_CMAKE_GENERATOR "Visual Studio 16 2019") -set(CTEST_CMAKE_GENERATOR_PLATFORM "x64") +set(CTEST_CMAKE_GENERATOR_PLATFORM "x64") list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}") include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake) diff --git a/scripts/ci/cmake/ci-win2019-vs2019-ninja.cmake b/scripts/ci/cmake/ci-win2019-vs2019-ninja.cmake index b941f3b4d2..d88b994700 100644 --- a/scripts/ci/cmake/ci-win2019-vs2019-ninja.cmake +++ b/scripts/ci/cmake/ci-win2019-vs2019-ninja.cmake @@ -12,6 +12,6 @@ ADIOS2_USE_MPI:BOOL=OFF set(CTEST_CMAKE_GENERATOR "Ninja") #set(CTEST_CMAKE_GENERATOR "Visual Studio 16 2019") -#set(CTEST_CMAKE_GENERATOR_PLATFORM "x64") +#set(CTEST_CMAKE_GENERATOR_PLATFORM "x64") list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}") include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake) diff --git a/scripts/ci/cmake/ci-win2019-vs2019-ompi.cmake b/scripts/ci/cmake/ci-win2019-vs2019-ompi.cmake index 0be2b74470..f79b2a0e19 100644 --- a/scripts/ci/cmake/ci-win2019-vs2019-ompi.cmake +++ b/scripts/ci/cmake/ci-win2019-vs2019-ompi.cmake @@ -10,6 +10,6 @@ ADIOS2_USE_MPI:BOOL=ON set(CTEST_TEST_TIMEOUT 500) set(CTEST_CMAKE_GENERATOR "Visual Studio 16 2019") -set(CTEST_CMAKE_GENERATOR_PLATFORM "x64") +set(CTEST_CMAKE_GENERATOR_PLATFORM "x64") list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}") include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake) diff --git a/scripts/ci/cmake/ci-win2019-vs2019-serial.cmake b/scripts/ci/cmake/ci-win2019-vs2019-serial.cmake index e7739ea37a..157e8278f0 100644 --- a/scripts/ci/cmake/ci-win2019-vs2019-serial.cmake +++ b/scripts/ci/cmake/ci-win2019-vs2019-serial.cmake @@ -10,6 +10,6 @@ ADIOS2_USE_MPI:BOOL=OFF set(CTEST_TEST_TIMEOUT 500) set(CTEST_CMAKE_GENERATOR "Visual Studio 16 2019") -set(CTEST_CMAKE_GENERATOR_PLATFORM "x64") +set(CTEST_CMAKE_GENERATOR_PLATFORM "x64") list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}") include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake) diff --git a/scripts/ci/cmake/ci-win2022-vs2022-ompi.cmake b/scripts/ci/cmake/ci-win2022-vs2022-ompi.cmake index 74626dfecd..f51d9c438a 100644 --- a/scripts/ci/cmake/ci-win2022-vs2022-ompi.cmake +++ b/scripts/ci/cmake/ci-win2022-vs2022-ompi.cmake @@ -9,6 +9,6 @@ ADIOS2_USE_MPI:BOOL=ON ") set(CTEST_CMAKE_GENERATOR "Visual Studio 17 2022") -set(CTEST_CMAKE_GENERATOR_PLATFORM "x64") +set(CTEST_CMAKE_GENERATOR_PLATFORM "x64") list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}") include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake) diff --git a/scripts/ci/cmake/ci-win2022-vs2022-serial.cmake b/scripts/ci/cmake/ci-win2022-vs2022-serial.cmake index 291be6ec45..f3b7347e7c 100644 --- a/scripts/ci/cmake/ci-win2022-vs2022-serial.cmake +++ b/scripts/ci/cmake/ci-win2022-vs2022-serial.cmake @@ -9,6 +9,6 @@ ADIOS2_USE_MPI:BOOL=OFF ") set(CTEST_CMAKE_GENERATOR "Visual Studio 17 2022") -set(CTEST_CMAKE_GENERATOR_PLATFORM "x64") +set(CTEST_CMAKE_GENERATOR_PLATFORM "x64") list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}") include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake) diff --git a/scripts/ci/gh-actions/macos-setup.sh b/scripts/ci/gh-actions/macos-setup.sh index 7b2bf39543..8cae241e0e 100755 --- a/scripts/ci/gh-actions/macos-setup.sh +++ b/scripts/ci/gh-actions/macos-setup.sh @@ -44,6 +44,9 @@ brew install c-blosc echo "Installing python3" brew install python numpy +echo "Installing ccache" +brew install ccache + if [[ "$GH_YML_JOBNAME" =~ -ompi ]] then echo "Installing OpenMPI" diff --git a/scripts/ci/images/Dockerfile.ci-el8-intel b/scripts/ci/images/Dockerfile.ci-el8-intel index 82eacf7b4a..1ff2894e60 100644 --- a/scripts/ci/images/Dockerfile.ci-el8-intel +++ b/scripts/ci/images/Dockerfile.ci-el8-intel @@ -9,6 +9,7 @@ RUN dnf install -y dnf-plugins-core && \ RUN dnf install -y \ bzip2-devel \ + ccache \ curl \ diffutils \ file \ diff --git a/scripts/ci/images/Dockerfile.ci-spack-ubuntu20.04-base b/scripts/ci/images/Dockerfile.ci-spack-ubuntu20.04-base index eea7b9cc30..bd432d6060 100644 --- a/scripts/ci/images/Dockerfile.ci-spack-ubuntu20.04-base +++ b/scripts/ci/images/Dockerfile.ci-spack-ubuntu20.04-base @@ -39,7 +39,9 @@ RUN . /spack/share/spack/setup-env.sh && \ echo "source /spack/share/spack/setup-env.sh" >> /etc/profile.d/zz-spack.sh ### Other missing packages (compared to el8 base): -RUN apt-get remove -y \ +RUN apt-get update && apt-get install -y \ + ccache && \ + apt-get remove -y \ gcc-9 \ g++-9 \ gfortran-9 && \ From af83421957201c89cda904a0b188a7e8517b1bba Mon Sep 17 00:00:00 2001 From: Scott Wittenburg Date: Thu, 20 Jul 2023 17:57:41 -0600 Subject: [PATCH 2/2] Fix broken intel images It seems intel recently came out with the 2023.2.0 versions of these packages, and those were picked with the most recent build. When the newest versions were chosen, we could no longer load the "icc" or "compiler" modules, so pin to the previous working version. --- scripts/ci/images/Dockerfile.ci-el8-intel | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/ci/images/Dockerfile.ci-el8-intel b/scripts/ci/images/Dockerfile.ci-el8-intel index 1ff2894e60..d43abe663a 100644 --- a/scripts/ci/images/Dockerfile.ci-el8-intel +++ b/scripts/ci/images/Dockerfile.ci-el8-intel @@ -42,9 +42,9 @@ RUN dnf install -y \ COPY oneAPI.repo /etc/yum.repos.d/ RUN pip3 install numpy && \ dnf install -y \ - intel-oneapi-compiler-dpcpp-cpp \ - intel-oneapi-compiler-fortran \ - intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic + intel-oneapi-compiler-dpcpp-cpp-2023.1.0 \ + intel-oneapi-compiler-fortran-2023.1.0 \ + intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.1.0 RUN dnf clean all # Setup module files for the compilers