mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 00:31:14 +00:00
ci: Update and use images from ghcr.io/fairrootgroup/fairmq-dev
This commit is contained in:
parent
b3395ef26e
commit
9a51c7b5fb
28
Jenkinsfile
vendored
28
Jenkinsfile
vendored
|
@ -4,20 +4,21 @@ def jobMatrix(String type, List specs) {
|
|||
def nodes = [:]
|
||||
for (spec in specs) {
|
||||
def job = ""
|
||||
def selector = ""
|
||||
def selector = "slurm"
|
||||
def os = ""
|
||||
def ver = ""
|
||||
|
||||
if (type == 'build') {
|
||||
job = "${spec.os}-${spec.ver}-${spec.arch}-${spec.compiler}"
|
||||
selector = "${spec.os}-${spec.ver}-${spec.arch}"
|
||||
if (spec.os =~ /^macos/) {
|
||||
selector = "${spec.os}-${spec.ver}-${spec.arch}"
|
||||
}
|
||||
os = spec.os
|
||||
ver = spec.ver
|
||||
} else { // == 'check'
|
||||
job = "${spec.name}"
|
||||
selector = 'fedora-35-x86_64'
|
||||
os = 'fedora'
|
||||
ver = '35'
|
||||
ver = '36'
|
||||
}
|
||||
|
||||
def label = "${job}"
|
||||
|
@ -36,14 +37,14 @@ def jobMatrix(String type, List specs) {
|
|||
sh "echo \"export LABEL=\\\"\${JOB_BASE_NAME} ${label}\\\"\" >> ${jobscript}"
|
||||
if (selector =~ /^macos/) {
|
||||
sh """\
|
||||
echo \"export DDS_ROOT=\\\"\\\$(brew --prefix dds)\\\"\" >> ${jobscript}
|
||||
echo \"export PATH=\\\"\\\$(brew --prefix dds)/bin:\\\$PATH\\\"\" >> ${jobscript}
|
||||
echo \"${ctestcmd}\" >> ${jobscript}
|
||||
"""
|
||||
sh "cat ${jobscript}"
|
||||
sh "bash ${jobscript}"
|
||||
} else {
|
||||
def containercmd = "singularity exec --net --ipc --uts --pid -B/shared ${env.SINGULARITY_CONTAINER_ROOT}/fairmq/${os}.${ver}.sif bash -l -c \\\"${ctestcmd} ${extra}\\\""
|
||||
} else { // selector == "slurm"
|
||||
def imageurl = "oras://ghcr.io/fairrootgroup/fairmq-dev/${os}-${ver}-sif:latest"
|
||||
def execopts = "--net --ipc --uts --pid -B/shared"
|
||||
def containercmd = "singularity exec ${execopts} ${imageurl} bash -l -c \\\"${ctestcmd} ${extra}\\\""
|
||||
sh """\
|
||||
echo \"echo \\\"*** Job started at .......: \\\$(date -R)\\\"\" >> ${jobscript}
|
||||
echo \"echo \\\"*** Job ID ...............: \\\${SLURM_JOB_ID}\\\"\" >> ${jobscript}
|
||||
|
@ -67,12 +68,6 @@ def jobMatrix(String type, List specs) {
|
|||
deleteDir()
|
||||
githubNotify(context: "${label}", description: 'Success', status: 'SUCCESS')
|
||||
} catch (e) {
|
||||
def tarball = "${type}_${job}_dds_logs.tar.gz"
|
||||
if (fileExists("build/test/.DDS")) {
|
||||
sh "tar czvf ${tarball} -C \${WORKSPACE}/build/test .DDS/"
|
||||
archiveArtifacts tarball
|
||||
}
|
||||
|
||||
deleteDir()
|
||||
githubNotify(context: "${label}", description: 'Error', status: 'ERROR')
|
||||
throw e
|
||||
|
@ -93,12 +88,13 @@ pipeline{
|
|||
|
||||
def builds = jobMatrix('build', [
|
||||
[os: 'ubuntu', ver: '20.04', arch: 'x86_64', compiler: 'gcc-9', extra: all],
|
||||
[os: 'fedora', ver: '32', arch: 'x86_64', compiler: 'gcc-10', extra: all],
|
||||
[os: 'ubuntu', ver: '22.04', arch: 'x86_64', compiler: 'gcc-11', extra: '-DHAS_ASIO=ON -DHAS_ASIOFI=ON'],
|
||||
[os: 'fedora', ver: '33', arch: 'x86_64', compiler: 'gcc-10', extra: all],
|
||||
[os: 'fedora', ver: '34', arch: 'x86_64', compiler: 'gcc-11', extra: all],
|
||||
[os: 'fedora', ver: '35', arch: 'x86_64', compiler: 'gcc-11', extra: all],
|
||||
[os: 'fedora', ver: '36', arch: 'x86_64', compiler: 'gcc-12', extra: all],
|
||||
[os: 'macos', ver: '12', arch: 'x86_64', compiler: 'apple-clang-13', extra: '-DHAS_ASIO=ON'],
|
||||
[os: 'macos', ver: '12', arch: 'arm64', compiler: 'apple-clang-13', extra: '-DHAS_ASIO=ON'],
|
||||
[os: 'macos', ver: '12', arch: 'arm64', compiler: 'apple-clang-13', extra: '-DHAS_ASIO=ON'],
|
||||
])
|
||||
|
||||
def all_debug = "${all} -DCMAKE_BUILD_TYPE=Debug"
|
||||
|
|
19
test/ci/Containerfile.fedora
Normal file
19
test/ci/Containerfile.fedora
Normal file
|
@ -0,0 +1,19 @@
|
|||
ARG VERSION=latest
|
||||
FROM fedora:${VERSION}
|
||||
ARG VERSION=latest
|
||||
LABEL org.opencontainers.image.source "https://github.com/FairRootGroup/FairMQ"
|
||||
LABEL org.opencontainers.image.description "FairMQ development environment"
|
||||
RUN dnf -y update
|
||||
# https://git.gsi.de/SDE/packages/builder
|
||||
RUN dnf -y install https://alfa-ci.gsi.de/packages/rpm/fedora-$VERSION-x86_64/fairsoft-release-dev.rpm
|
||||
RUN dnf -y install clang cli11-devel pmix-devel ninja-build 'dnf-command(builddep)' libasan liblsan libtsan libubsan clang-tools-extra
|
||||
RUN dnf -y builddep fairmq
|
||||
RUN dnf -y clean all
|
||||
|
||||
# buildah build --build-arg "VERSION=36" -t "ghcr.io/fairrootgroup/fairmq-dev/fedora-36:latest" -f test/ci/Containerfile.fedora .
|
||||
# echo $GH_PAT | buildah login -u dennisklein --password-stdin ghcr.io
|
||||
# buildah push ghcr.io/fairrootgroup/fairmq-dev/fedora-36:latest
|
||||
|
||||
# apptainer pull docker://ghcr.io/fairrootgroup/fairmq-dev/fedora-36:latest
|
||||
# echo $GH_PAT | apptainer remote login -u dennisklein --password-stdin oras://ghcr.io
|
||||
# apptainer push ./fedora-36_latest.sif oras://ghcr.io/fairrootgroup/fairmq-dev/fedora-36-sif:latest
|
41
test/ci/Containerfile.ubuntu
Normal file
41
test/ci/Containerfile.ubuntu
Normal file
|
@ -0,0 +1,41 @@
|
|||
ARG VERSION=latest
|
||||
FROM ubuntu:${VERSION}
|
||||
ARG VERSION=latest
|
||||
LABEL org.opencontainers.image.source "https://github.com/FairRootGroup/FairMQ"
|
||||
LABEL org.opencontainers.image.description "FairMQ development environment"
|
||||
|
||||
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
|
||||
RUN apt-get update
|
||||
RUN apt-get -y upgrade
|
||||
RUN apt-get -y install ca-certificates patch cmake git libboost-dev libboost-log-dev libboost-system-dev libboost-regex-dev libboost-filesystem-dev libboost-container-dev libboost-thread-dev libboost-date-time-dev libboost-program-options-dev g++ libfmt-dev ninja-build wget libczmq-dev libxml2-utils libfabric-dev libfabric-bin libpmix-dev pkg-config
|
||||
RUN apt-get -y clean
|
||||
|
||||
RUN cd /tmp
|
||||
|
||||
RUN git clone -b v1.19.2 --recurse-submodules https://github.com/FairRootGroup/asio
|
||||
RUN cmake -GNinja -S asio -B asio_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
|
||||
RUN cmake --build asio_build --target install
|
||||
RUN rm -rf asio asio_build
|
||||
|
||||
RUN git clone -b v1.0.0 https://github.com/FairRootGroup/FairCMakeModules
|
||||
RUN cmake -GNinja -S FairCMakeModules -B FairCMakeModules_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
|
||||
RUN cmake --build FairCMakeModules_build --target install
|
||||
RUN rm -rf FairCMakeModules FairCMakeModules_build
|
||||
|
||||
RUN git clone -b v0.5.1 --recurse-submodules https://github.com/FairRootGroup/asiofi
|
||||
RUN cmake -GNinja -S asiofi -B asiofi_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
|
||||
RUN cmake --build asiofi_build --target install
|
||||
RUN rm -rf asiofi asiofi_build
|
||||
|
||||
RUN git clone -b v1.11.0 https://github.com/FairRootGroup/FairLogger
|
||||
RUN cmake -GNinja -S FairLogger -B FairLogger_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DUSE_EXTERNAL_FMT=ON
|
||||
RUN cmake --build FairLogger_build --target install
|
||||
RUN rm -rf FairLogger FairLogger_build
|
||||
|
||||
# buildah build --build-arg "VERSION=22.04" -t "ghcr.io/fairrootgroup/fairmq-dev/ubuntu-22.04:latest" -f test/ci/Containerfile.ubuntu .
|
||||
# echo $GH_PAT | buildah login -u dennisklein --password-stdin ghcr.io
|
||||
# buildah push ghcr.io/fairrootgroup/fairmq-dev/ubuntu-22.04:latest
|
||||
|
||||
# apptainer pull docker://ghcr.io/fairrootgroup/fairmq-dev/ubuntu-22.04:latest
|
||||
# echo $GH_PAT | apptainer remote login -u dennisklein --password-stdin oras://ghcr.io
|
||||
# apptainer push ./ubuntu-22.04_latest.sif oras://ghcr.io/fairrootgroup/fairmq-dev/ubuntu-22.04-sif:latest
|
|
@ -1,9 +0,0 @@
|
|||
Bootstrap: docker
|
||||
From: fedora:32
|
||||
|
||||
%post
|
||||
dnf -y update
|
||||
dnf -y install https://alfa-ci.gsi.de/packages/rpm/fedora-32-x86_64/fairsoft-release-dev.rpm
|
||||
dnf -y install cli11-devel pmix-devel ninja-build 'dnf-command(builddep)'
|
||||
dnf -y builddep fairmq
|
||||
dnf -y clean all
|
|
@ -1,9 +0,0 @@
|
|||
Bootstrap: docker
|
||||
From: fedora:33
|
||||
|
||||
%post
|
||||
dnf -y update
|
||||
dnf -y install https://alfa-ci.gsi.de/packages/rpm/fedora-33-x86_64/fairsoft-release-dev.rpm
|
||||
dnf -y install cli11-devel pmix-devel ninja-build 'dnf-command(builddep)'
|
||||
dnf -y builddep fairmq
|
||||
dnf -y clean all
|
|
@ -1,9 +0,0 @@
|
|||
Bootstrap: docker
|
||||
From: fedora:34
|
||||
|
||||
%post
|
||||
dnf -y update
|
||||
dnf -y install https://alfa-ci.gsi.de/packages/rpm/fedora-34-x86_64/fairsoft-release-dev.rpm
|
||||
dnf -y install cli11-devel pmix-devel ninja-build 'dnf-command(builddep)' libasan liblsan libtsan libubsan clang-tools-extra
|
||||
dnf -y builddep fairmq
|
||||
dnf -y clean all
|
|
@ -1,9 +0,0 @@
|
|||
Bootstrap: docker
|
||||
From: fedora:35
|
||||
|
||||
%post
|
||||
dnf -y update
|
||||
dnf -y install https://alfa-ci.gsi.de/packages/rpm/fedora-35-x86_64/fairsoft-release-dev.rpm
|
||||
dnf -y install clang cli11-devel pmix-devel ninja-build 'dnf-command(builddep)' libasan liblsan libtsan libubsan clang-tools-extra
|
||||
dnf -y builddep fairmq
|
||||
dnf -y clean all
|
|
@ -1,36 +0,0 @@
|
|||
Bootstrap: docker
|
||||
From: ubuntu:20.04
|
||||
|
||||
%post
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update
|
||||
apt-get -y upgrade
|
||||
apt-get -y install ca-certificates patch cmake git libboost-dev libboost-log-dev libboost-system-dev libboost-regex-dev libboost-filesystem-dev libboost-container-dev libboost-thread-dev libboost-date-time-dev libboost-program-options-dev g++ libfmt-dev ninja-build wget libczmq-dev libxml2-utils libfabric-dev libfabric-bin libpmix-dev pkg-config
|
||||
apt-get -y clean
|
||||
|
||||
cd /tmp
|
||||
|
||||
git clone -b v1.19.2 --recurse-submodules https://github.com/FairRootGroup/asio
|
||||
cmake -GNinja -S asio -B asio_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build asio_build --target install
|
||||
rm -rf asio asio_build
|
||||
|
||||
git clone -b v1.0.0 https://github.com/FairRootGroup/FairCMakeModules
|
||||
cmake -GNinja -S FairCMakeModules -B FairCMakeModules_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build FairCMakeModules_build --target install
|
||||
rm -rf FairCMakeModules FairCMakeModules_build
|
||||
|
||||
git clone -b v0.5.1 --recurse-submodules https://github.com/FairRootGroup/asiofi
|
||||
cmake -GNinja -S asiofi -B asiofi_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build asiofi_build --target install
|
||||
rm -rf asiofi asiofi_build
|
||||
|
||||
git clone -b v1.12.1 https://github.com/google/flatbuffers
|
||||
cmake -GNinja -S flatbuffers -B flatbuffers_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
cmake --build flatbuffers_build --target install
|
||||
rm -rf flatbuffers flatbuffers_build
|
||||
|
||||
git clone -b v1.9.3 https://github.com/FairRootGroup/FairLogger
|
||||
cmake -GNinja -S FairLogger -B FairLogger_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DUSE_EXTERNAL_FMT=ON
|
||||
cmake --build FairLogger_build --target install
|
||||
rm -rf FairLogger FairLogger_build
|
Loading…
Reference in New Issue
Block a user