Skip to content

Commit

Permalink
Major CI rework
Browse files Browse the repository at this point in the history
  • Loading branch information
Chuck Atkins committed Feb 22, 2022
1 parent f589ec3 commit 9028d58
Show file tree
Hide file tree
Showing 42 changed files with 1,160 additions and 26 deletions.
62 changes: 37 additions & 25 deletions .github/workflows/everything.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ jobs:
#######################################

format:
if: ${{ false }} # Disable while testing. Remove this before merging
runs-on: ubuntu-latest
container:
image: ornladios/adios2:ci-formatting
Expand All @@ -38,7 +39,7 @@ jobs:
#######################################

linux:
needs: format
#needs: format
runs-on: ubuntu-latest
container:
image: ${{ matrix.container }}
Expand All @@ -51,31 +52,39 @@ jobs:
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 ]
el8-gcc8-serial,
el8-gcc8-mpi,
el8-gcc9-serial,
el8-gcc9-mpi,
el8-gcc10-serial,
el8-gcc10-mpi,
el8-gcc11-serial,
el8-gcc11-mpi ]
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
- jobname: el8-gcc8-serial
container: ornladios/adios2:ci-spack-el8-gcc8-serial
- jobname: el8-gcc8-mpi
container: ornladios/adios2:ci-spack-el8-gcc8-mpi
- jobname: el8-gcc9-serial
container: ornladios/adios2:ci-spack-el8-gcc9-serial
- jobname: el8-gcc9-mpi
container: ornladios/adios2:ci-spack-el8-gcc9-mpi
- jobname: el8-gcc10-serial
container: ornladios/adios2:ci-spack-el8-gcc10-serial
- jobname: el8-gcc10-mpi
container: ornladios/adios2:ci-spack-el8-gcc10-mpi
- jobname: el8-gcc11-serial
container: ornladios/adios2:ci-spack-el8-gcc11-serial
- jobname: el8-gcc11-mpi
container: ornladios/adios2:ci-spack-el8-gcc11-mpi
- jobname: el8-icc-serial
container: ornladios/adios2:ci-spack-el8-icc-serial
- jobname: el8-icc-mpi
container: ornladios/adios2:ci-spack-el8-icc-mpi
- jobname: el8-oneapi-serial
container: ornladios/adios2:ci-spack-el8-oneapi-serial
- jobname: el8-oneapi-mpi
container: ornladios/adios2:ci-spack-el8-oneapi-mpi

steps:
- uses: actions/checkout@v2
Expand All @@ -93,6 +102,7 @@ jobs:
run: scripts/ci/gh-actions/run.sh test

linux_emu:
if: ${{ false }} # Disable while testing. Remove this before merging
needs: format
runs-on: ubuntu-latest
container:
Expand Down Expand Up @@ -143,6 +153,7 @@ jobs:
#######################################

docker:
if: ${{ false }} # Disable while testing. Remove this before merging
needs: format
runs-on: ubuntu-latest
strategy:
Expand Down Expand Up @@ -207,6 +218,7 @@ jobs:
# run steps lets the steps be written as though they too were using a
# standard container job.
contract:
if: ${{ false }} # Disable while testing. Remove this before merging
needs: docker
runs-on: ubuntu-latest

Expand Down
File renamed without changes.
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()
38 changes: 38 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,38 @@
# Client maintainer: chuck.atkins@kitware.com

find_package(EnvModules REQUIRED)

env_module(load gcc-10)

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=ON
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)
31 changes: 31 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,31 @@
# Client maintainer: chuck.atkins@kitware.com

find_package(EnvModules REQUIRED)

env_module(load gcc-10)

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=ON
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)
38 changes: 38 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,38 @@
# Client maintainer: chuck.atkins@kitware.com

find_package(EnvModules REQUIRED)

env_module(load gcc-11)

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=ON
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)
31 changes: 31 additions & 0 deletions scripts/ci/cmake-v2/ci-el8-gcc11-serial.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Client maintainer: chuck.atkins@kitware.com

find_package(EnvModules REQUIRED)

env_module(load gcc-11)

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=ON
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-gcc8-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=ON
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-gcc8-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=ON
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)
Loading

0 comments on commit 9028d58

Please sign in to comment.