CI: Migrate to new alfa-ci infrastructure

This commit is contained in:
Dennis Klein
2021-03-05 02:59:46 +01:00
committed by Dennis Klein
parent bcfe438862
commit f012a870e7
9 changed files with 188 additions and 302 deletions

46
test/ci/CMakeLists.txt Normal file
View File

@@ -0,0 +1,46 @@
################################################################################
# Copyright (C) 2021 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH #
# #
# This software is distributed under the terms of the #
# GNU Lesser General Public Licence (LGPL) version 3, #
# copied verbatim in the file "LICENSE" #
################################################################################
function(container)
cmake_parse_arguments(ARGS "" "OS;VERSION;DOCKER_TAG;PACKAGE_SETUP_SCRIPT" "" ${ARGN})
if(ARGS_DOCKER_TAG)
set(DOCKER_TAG ${ARGS_DOCKER_TAG})
else()
set(DOCKER_TAG "${ARGS_OS}:${ARGS_VERSION}")
endif()
if(ARGS_PACKAGE_SETUP_SCRIPT)
set(PACKAGE_SETUP_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/${ARGS_PACKAGE_SETUP_SCRIPT}")
else()
set(PACKAGE_SETUP_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/setup-${ARGS_OS}.sh")
endif()
set(container "${ARGS_OS}.${ARGS_VERSION}")
set(def "${container}.def")
set(log "${container}.log")
set(target "${container}.fairlogger.sif")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/linux.def.in" ${def} @ONLY)
add_custom_command(OUTPUT ${target}
COMMAND ${CMAKE_COMMAND} -E env ${BASH} -c
"${SINGULARITY} build -f -F ${target} ${def} > ${log} 2>&1"
VERBATIM
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Building fairlogger test container ${target}, logging to ${CMAKE_CURRENT_BINARY_DIR}/${log}"
DEPENDS ${PACKAGE_SETUP_SCRIPT} ${bootstrap_cmake_script}
)
list(APPEND containers ${target})
set(containers ${containers} PARENT_SCOPE)
endfunction()
container(OS fedora VERSION 33)
add_custom_target(all-containers DEPENDS ${containers})

8
test/ci/linux.def.in Normal file
View File

@@ -0,0 +1,8 @@
Bootstrap: docker
From: @DOCKER_TAG@
%files
@PACKAGE_SETUP_SCRIPT@ /setup.sh
%post
bash /setup.sh

8
test/ci/setup-fedora.sh Executable file
View File

@@ -0,0 +1,8 @@
#! /bin/bash
dnf -y update
dnf -y groupinstall "C Development Tools and Libraries"
dnf -y install binutils boost-devel cmake ca-certificates coreutils diffutils \
findutils fmt-devel gcc-c++ git hostname ninja-build patch procps python \
redhat-lsb-core sed tar wget which
dnf -y clean all

41
test/ci/slurm-submit.sh Executable file
View File

@@ -0,0 +1,41 @@
#! /bin/bash
label="$1"
jobsh="$2"
if [ -z "$ALFACI_SLURM_CPUS" ]
then
ALFACI_SLURM_CPUS=32
fi
if [ -z "$ALFACI_SLURM_EXTRA_OPTS" ]
then
ALFACI_SLURM_EXTRA_OPTS="--hint=compute_bound"
fi
if [ -z "$ALFACI_SLURM_TIMEOUT" ]
then
ALFACI_SLURM_TIMEOUT=30
fi
if [ -z "$ALFACI_SLURM_QUEUE" ]
then
ALFACI_SLURM_QUEUE=main
fi
echo "*** Slurm request options :"
echo "*** Working directory ..: $PWD"
echo "*** Queue ..............: $ALFACI_SLURM_QUEUE"
echo "*** CPUs ...............: $ALFACI_SLURM_CPUS"
echo "*** Wall Time ..........: $ALFACI_SLURM_TIMEOUT min"
echo "*** Job Name ...........: ${label}"
echo "*** Extra Options ......: ${ALFACI_SLURM_EXTRA_OPTS}"
echo "*** Submitting job at ....: $(date -R)"
(
set -x
srun -p $ALFACI_SLURM_QUEUE -c $ALFACI_SLURM_CPUS -n 1 \
-t $ALFACI_SLURM_TIMEOUT \
--job-name="${label}" \
${ALFACI_SLURM_EXTRA_OPTS} \
bash "${jobsh}"
)
retval=$?
echo "*** Exit Code ............: $retval"
exit "$retval"