Skip to content

Commit

Permalink
Merge pull request #3067 from chuckatkins/ci-images-v2
Browse files Browse the repository at this point in the history
Major CI rework
  • Loading branch information
Chuck Atkins authored Feb 24, 2022
2 parents 17aeb7c + b51b731 commit 98fa51e
Show file tree
Hide file tree
Showing 94 changed files with 1,457 additions and 169 deletions.
72 changes: 44 additions & 28 deletions .github/workflows/everything.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,41 +41,17 @@ jobs:
needs: format
runs-on: ubuntu-latest
container:
image: ${{ matrix.container }}
image: ornladios/adios2:ci-spack-el8-${{ matrix.compiler }}-${{ matrix.parallel }}
options: --shm-size=1g
env:
GH_YML_JOBNAME: ${{ matrix.jobname }}
GH_YML_JOBNAME: el8-${{ matrix.compiler }}-${{ matrix.parallel }}
GH_YML_OS: Linux

strategy:
fail-fast: false
matrix:
jobname: [
el7,
el7-gnu8-ohpc,
el7-gnu8-openmpi-ohpc,
el7-gnu8-openmpi-ohpc-static,
suse-pgi,
suse-pgi-openmpi,
debian-sid,
debian-sid-openmpi ]
include:
- jobname: el7
container: ornladios/adios2:ci-el7
- jobname: el7-gnu8-ohpc
container: ornladios/adios2:ci-el7-gnu8-ohpc
- jobname: el7-gnu8-openmpi-ohpc
container: ornladios/adios2:ci-el7-gnu8-openmpi-ohpc
- jobname: el7-gnu8-openmpi-ohpc-static
container: ornladios/adios2:ci-el7-gnu8-openmpi-ohpc
- jobname: suse-pgi
container: ornladios/adios2:ci-suse-nvhpcsdk
- jobname: suse-pgi-openmpi
container: ornladios/adios2:ci-suse-nvhpcsdk-openmpi
- jobname: debian-sid
container: ornladios/adios2:ci-debian-sid
- jobname: debian-sid-openmpi
container: ornladios/adios2:ci-debian-sid
compiler: [ gcc8, gcc9, gcc10, gcc11, icc, oneapi, nvhpc222 ]
parallel: [ serial, mpi ]

steps:
- uses: actions/checkout@v2
Expand Down Expand Up @@ -138,6 +114,46 @@ jobs:
run: scripts/ci/gh-actions/run.sh test


macos:
needs: format
runs-on: ${{ matrix.image }}
env:
GH_YML_JOBNAME: ${{ matrix.os }}-${{ matrix.parallel }}
GH_YML_OS: macOS
GH_YML_XCODE: "${{ matrix.xcode }}"

strategy:
fail-fast: false
matrix:
os: [ macos10, macos11, macos11_12sdk ]
# parallel: [ serial, mpi ]
parallel: [ serial ]
include:
- os: macos10
image: macos-10.15
xcode: "12.1.1"
- os: macos11
image: macos-11
xcode: "13.0"
- os: macos11_12sdk
image: macos-11
xcode: "13.2.1"

steps:
- uses: actions/checkout@v2
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup
run: scripts/ci/gh-actions/macos-setup.sh
- name: Update
run: scripts/ci/gh-actions/run.sh update
- name: Configure
run: scripts/ci/gh-actions/run.sh configure
- name: Build
run: scripts/ci/gh-actions/run.sh build
- name: Test
run: scripts/ci/gh-actions/run.sh test

#######################################
# Docker container jobs
#######################################
Expand Down
2 changes: 2 additions & 0 deletions CTestCustom.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
"Warning: Rank mismatch between actual argument.*"
"zfp/types.h.*typedef"
"was built for newer macOS version"
"warning generated"
"warnings generated"
)
list(APPEND CTEST_CUSTOM_COVERAGE_EXCLUDE
".*/thirdparty/.*"
Expand Down
96 changes: 0 additions & 96 deletions azure-pipelines.yml

This file was deleted.

2 changes: 1 addition & 1 deletion examples/hello/bpFWriteCRead/CppReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ int main(int argc, char *argv[])
const std::map<std::string, adios2::Params> variables =
bpIO.AvailableVariables();

for (const auto variablePair : variables)
for (const auto &variablePair : variables)
{
std::cout << "Name: " << variablePair.first;

Expand Down
2 changes: 1 addition & 1 deletion examples/hello/bpReader/helloBPReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ int main(int argc, char *argv[])
const std::map<std::string, adios2::Params> variables =
bpIO.AvailableVariables();

for (const auto variablePair : variables)
for (const auto &variablePair : variables)
{
std::cout << "Name: " << variablePair.first;

Expand Down
62 changes: 62 additions & 0 deletions scripts/ci/cmake-v2/ci-common.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
if(POLICY CMP0057)
cmake_policy(SET CMP0057 NEW)
endif()

if(NOT CTEST_BUILD_CONFIGURATION)
set(CTEST_BUILD_CONFIGURATION Debug)
endif()

if(NOT DEFINED NCPUS)
include(ProcessorCount)
ProcessorCount(NCPUS)
endif()
math(EXPR N2CPUS "${NCPUS}*2")
if(NOT CTEST_BUILD_FLAGS)
if(CTEST_CMAKE_GENERATOR STREQUAL "Unix Makefiles")
set(CTEST_BUILD_FLAGS "-k -j${N2CPUS}")
elseif(CTEST_CMAKE_GENERATOR STREQUAL "Ninja")
set(CTEST_BUILD_FLAGS "-k0 -j${N2CPUS}")
endif()
endif()
if(NOT PARALLEL_LEVEL IN_LIST CTEST_TEST_ARGS)
list(APPEND CTEST_TEST_ARGS PARALLEL_LEVEL ${N2CPUS})
endif()

if(NOT dashboard_model)
set(dashboard_model Experimental)
endif()
if(NOT dashboard_binary_name)
set(dashboard_binary_name "build")
endif()
if(NOT dashboard_track)
set(dashboard_track "Continuous Integration")
endif()
find_program(CTEST_GIT_COMMAND git)
if(NOT "$ENV{CI_COMMIT_REF}" STREQUAL "")
set(dashboard_git_branch "$ENV{CI_COMMIT_REF}")
set(CTEST_UPDATE_VERSION_ONLY ON)
endif()
if(NOT "$ENV{CI_SITE_NAME}" STREQUAL "")
set(CTEST_SITE "$ENV{CI_SITE_NAME}")
endif()
if(NOT "$ENV{CI_BUILD_NAME}" STREQUAL "")
set(CTEST_BUILD_NAME "$ENV{CI_BUILD_NAME}")
endif()
if(NOT "$ENV{CI_ROOT_DIR}" STREQUAL "")
set(CTEST_DASHBOARD_ROOT "$ENV{CI_ROOT_DIR}")
endif()
if(NOT "$ENV{CI_SOURCE_DIR}" STREQUAL "")
set(CTEST_SOURCE_DIRECTORY "$ENV{CI_SOURCE_DIR}")
endif()
if(NOT "$ENV{CI_BIN_DIR}" STREQUAL "")
set(CTEST_BINARY_DIRECTORY "$ENV{CI_BIN_DIR}")
endif()

list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
set(CTEST_UPDATE_COMMAND ${CTEST_GIT_COMMAND})
set(CTEST_UPTATE_TYPE git)
set(CTEST_UPDATE_VERSION_ONLY TRUE)
include(${CMAKE_CURRENT_LIST_DIR}/../../dashboard/adios_common.cmake)
if(ctest_build_num_warnings GREATER 0)
message(FATAL_ERROR "Found ${ctest_build_num_warnings} warnings.")
endif()
34 changes: 34 additions & 0 deletions scripts/ci/cmake-v2/ci-el8-gcc10-mpi.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Client maintainer: chuck.atkins@kitware.com

include(ProcessorCount)
ProcessorCount(NCPUS)
math(EXPR N2CPUS "${NCPUS}*2")

set(ENV{CC} gcc)
set(ENV{CXX} g++)
set(ENV{FC} gfortran)

set(dashboard_cache "
ADIOS2_USE_BZip2:BOOL=ON
ADIOS2_USE_Blosc:BOOL=ON
ADIOS2_USE_DataMan:BOOL=ON
ADIOS2_USE_Fortran:BOOL=ON
ADIOS2_USE_HDF5:BOOL=OFF
ADIOS2_USE_MPI:BOOL=ON
ADIOS2_USE_Python:BOOL=ON
ADIOS2_USE_SZ:BOOL=ON
ADIOS2_USE_ZeroMQ:STRING=ON
ADIOS2_USE_ZFP:BOOL=ON
CMAKE_C_FLAGS:STRING=-Wall
CMAKE_CXX_FLAGS:STRING=-Wall
CMAKE_Fortran_FLAGS:STRING=-Wall
MPIEXEC_EXTRA_FLAGS:STRING=--allow-run-as-root --oversubscribe
MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS}
")

set(CTEST_TEST_ARGS PARALLEL_LEVEL 1)
set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)
27 changes: 27 additions & 0 deletions scripts/ci/cmake-v2/ci-el8-gcc10-serial.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Client maintainer: chuck.atkins@kitware.com

set(ENV{CC} gcc)
set(ENV{CXX} g++)
set(ENV{FC} gfortran)

set(dashboard_cache "
ADIOS2_USE_BZip2:BOOL=ON
ADIOS2_USE_Blosc:BOOL=ON
ADIOS2_USE_DataMan:BOOL=ON
ADIOS2_USE_Fortran:BOOL=ON
ADIOS2_USE_HDF5:BOOL=OFF
ADIOS2_USE_MPI:BOOL=OFF
ADIOS2_USE_Python:BOOL=ON
ADIOS2_USE_SZ:BOOL=ON
ADIOS2_USE_ZeroMQ:STRING=ON
ADIOS2_USE_ZFP:BOOL=ON
CMAKE_C_FLAGS:STRING=-Wall
CMAKE_CXX_FLAGS:STRING=-Wall
CMAKE_Fortran_FLAGS:STRING=-Wall
")

set(CTEST_TEST_ARGS PARALLEL_LEVEL 1)
set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)
34 changes: 34 additions & 0 deletions scripts/ci/cmake-v2/ci-el8-gcc11-mpi.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Client maintainer: chuck.atkins@kitware.com

include(ProcessorCount)
ProcessorCount(NCPUS)
math(EXPR N2CPUS "${NCPUS}*2")

set(ENV{CC} gcc)
set(ENV{CXX} g++)
set(ENV{FC} gfortran)

set(dashboard_cache "
ADIOS2_USE_BZip2:BOOL=ON
ADIOS2_USE_Blosc:BOOL=ON
ADIOS2_USE_DataMan:BOOL=ON
ADIOS2_USE_Fortran:BOOL=ON
ADIOS2_USE_HDF5:BOOL=OFF
ADIOS2_USE_MPI:BOOL=ON
ADIOS2_USE_Python:BOOL=ON
ADIOS2_USE_SZ:BOOL=ON
ADIOS2_USE_ZeroMQ:STRING=ON
ADIOS2_USE_ZFP:BOOL=ON
CMAKE_C_FLAGS:STRING=-Wall
CMAKE_CXX_FLAGS:STRING=-Wall
CMAKE_Fortran_FLAGS:STRING=-Wall
MPIEXEC_EXTRA_FLAGS:STRING=--allow-run-as-root --oversubscribe
MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS}
")

set(CTEST_TEST_ARGS PARALLEL_LEVEL 1)
set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)
Loading

0 comments on commit 98fa51e

Please sign in to comment.