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 = [:]
|
def nodes = [:]
|
||||||
for (spec in specs) {
|
for (spec in specs) {
|
||||||
def job = ""
|
def job = ""
|
||||||
def selector = ""
|
def selector = "slurm"
|
||||||
def os = ""
|
def os = ""
|
||||||
def ver = ""
|
def ver = ""
|
||||||
|
|
||||||
if (type == 'build') {
|
if (type == 'build') {
|
||||||
job = "${spec.os}-${spec.ver}-${spec.arch}-${spec.compiler}"
|
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
|
os = spec.os
|
||||||
ver = spec.ver
|
ver = spec.ver
|
||||||
} else { // == 'check'
|
} else { // == 'check'
|
||||||
job = "${spec.name}"
|
job = "${spec.name}"
|
||||||
selector = 'fedora-35-x86_64'
|
|
||||||
os = 'fedora'
|
os = 'fedora'
|
||||||
ver = '35'
|
ver = '36'
|
||||||
}
|
}
|
||||||
|
|
||||||
def label = "${job}"
|
def label = "${job}"
|
||||||
|
@ -36,14 +37,14 @@ def jobMatrix(String type, List specs) {
|
||||||
sh "echo \"export LABEL=\\\"\${JOB_BASE_NAME} ${label}\\\"\" >> ${jobscript}"
|
sh "echo \"export LABEL=\\\"\${JOB_BASE_NAME} ${label}\\\"\" >> ${jobscript}"
|
||||||
if (selector =~ /^macos/) {
|
if (selector =~ /^macos/) {
|
||||||
sh """\
|
sh """\
|
||||||
echo \"export DDS_ROOT=\\\"\\\$(brew --prefix dds)\\\"\" >> ${jobscript}
|
|
||||||
echo \"export PATH=\\\"\\\$(brew --prefix dds)/bin:\\\$PATH\\\"\" >> ${jobscript}
|
|
||||||
echo \"${ctestcmd}\" >> ${jobscript}
|
echo \"${ctestcmd}\" >> ${jobscript}
|
||||||
"""
|
"""
|
||||||
sh "cat ${jobscript}"
|
sh "cat ${jobscript}"
|
||||||
sh "bash ${jobscript}"
|
sh "bash ${jobscript}"
|
||||||
} else {
|
} else { // selector == "slurm"
|
||||||
def containercmd = "singularity exec --net --ipc --uts --pid -B/shared ${env.SINGULARITY_CONTAINER_ROOT}/fairmq/${os}.${ver}.sif bash -l -c \\\"${ctestcmd} ${extra}\\\""
|
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 """\
|
sh """\
|
||||||
echo \"echo \\\"*** Job started at .......: \\\$(date -R)\\\"\" >> ${jobscript}
|
echo \"echo \\\"*** Job started at .......: \\\$(date -R)\\\"\" >> ${jobscript}
|
||||||
echo \"echo \\\"*** Job ID ...............: \\\${SLURM_JOB_ID}\\\"\" >> ${jobscript}
|
echo \"echo \\\"*** Job ID ...............: \\\${SLURM_JOB_ID}\\\"\" >> ${jobscript}
|
||||||
|
@ -67,12 +68,6 @@ def jobMatrix(String type, List specs) {
|
||||||
deleteDir()
|
deleteDir()
|
||||||
githubNotify(context: "${label}", description: 'Success', status: 'SUCCESS')
|
githubNotify(context: "${label}", description: 'Success', status: 'SUCCESS')
|
||||||
} catch (e) {
|
} 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()
|
deleteDir()
|
||||||
githubNotify(context: "${label}", description: 'Error', status: 'ERROR')
|
githubNotify(context: "${label}", description: 'Error', status: 'ERROR')
|
||||||
throw e
|
throw e
|
||||||
|
@ -93,12 +88,13 @@ pipeline{
|
||||||
|
|
||||||
def builds = jobMatrix('build', [
|
def builds = jobMatrix('build', [
|
||||||
[os: 'ubuntu', ver: '20.04', arch: 'x86_64', compiler: 'gcc-9', extra: all],
|
[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: '33', arch: 'x86_64', compiler: 'gcc-10', extra: all],
|
||||||
[os: 'fedora', ver: '34', arch: 'x86_64', compiler: 'gcc-11', 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: '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: '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"
|
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