diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ea50a4d70fb9e332cebd0418e590abd38b8535b7..9a0b10980099a95f062d8961b685d7fca1b4e656 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -47,6 +47,18 @@ stages:
- bash ./.build.ci.sh
- bash ./.test.ci.sh
+# for k8s
+.build_template_k8s:
+ extends: .envvar_template
+ stage: build
+ tags:
+ - k8s # using k8s as runner
+ script:
+ - sed -i 's%^CVMFS_HTTP_PROXY=.*%CVMFS_HTTP_PROXY=http://squid-01.ihep.ac.cn:3128%' /etc/cvmfs/default.local
+ - for repo in sft.cern.ch geant4.cern.ch cepcsw.ihep.ac.cn; do [ -d "/cvmfs/$repo" ] || mkdir /cvmfs/$repo; sudo mount -t cvmfs $repo /cvmfs/$repo; done
+ - bash ./.build.ci.sh
+ - bash ./.test.ci.sh
+
##############################################################################
# Build & Test in CentOS 7 (LCG)
##############################################################################
@@ -67,25 +79,29 @@ build:lcg:el7:
# Build & Test in k8s (LCG)
##############################################################################
build:lcg:el7:k8s:
- extends: .build_template
+ extends: .build_template_k8s
image: cepc/cepcsw-cvmfs:el7
- tags:
- - k8s # using k8s as runner
- script:
- - sed -i 's%^CVMFS_HTTP_PROXY=.*%CVMFS_HTTP_PROXY=http://squid-01.ihep.ac.cn:3128%' /etc/cvmfs/default.local
- - for repo in sft.cern.ch geant4.cern.ch cepcsw.ihep.ac.cn; do [ -d "/cvmfs/$repo" ] || mkdir /cvmfs/$repo; sudo mount -t cvmfs $repo /cvmfs/$repo; done
- - bash ./.build.ci.sh
- - bash ./.test.ci.sh
+
+build:lcg:el9:k8s:
+ extends: .build_template_k8s
+ image: cepc/cepcsw-cvmfs:el9
+ variables:
+ CEPCSW_LCG_PLATFORM: x86_64-el9-gcc11-opt
+ CEPCSW_LCG_VERSION: 105.0.0
##############################################################################
# Build the docs
##############################################################################
-build:docs:
- stage: build
- tags:
- - centos7
+build:docs:k8s:
+ extends: .build_template_k8s
+ image: cepc/cepcsw-cvmfs:el9
script:
- bash ./.build.ci.sh docs
artifacts:
paths:
- docs/build/html/
+ rules:
+ - if: $CI_PIPELINE_SOURCE == "merge_request_event"
+ changes:
+ - docs/**/*
+
diff --git a/Dockerfile b/docker/el7/Dockerfile
similarity index 100%
rename from Dockerfile
rename to docker/el7/Dockerfile
diff --git a/docker/el9/Dockerfile b/docker/el9/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..150549c8104490748c78e4c8412e6ece532305c2
--- /dev/null
+++ b/docker/el9/Dockerfile
@@ -0,0 +1,67 @@
+##############################################################################
+# Docker image for CEPCSW
+##############################################################################
+
+# # Instruction
+# To build the docker image:
+# $ docker build -t cepc/cepcsw:el9 .
+# Or with CVMFS installed also
+# $ docker build -t cepc/cepcsw-cvmfs:el9 . --build-arg CVMFSMOD=INSIDE
+#
+# To publish it to DockerHub:
+# $ docker push cepc/cepcsw:el9
+# $ docker push cepc/cepcsw-cvmfs:el9
+
+FROM almalinux:9
+
+ARG CVMFSMOD
+
+RUN dnf install -y 'dnf-command(config-manager)'
+RUN dnf config-manager --set-enabled crb
+
+RUN dnf install -y epel-release \
+ && dnf install -y almalinux-release-devel \
+ && dnf install -y sudo \
+ && dnf install -y wget
+
+##############################################################################
+# CVMFS client
+##############################################################################
+# this will install the cvmfs client inside the container
+# User needs to run with --privileged mode.
+RUN if [ "$CVMFSMOD" = "INSIDE" ]; then \
+ sudo yum install -y https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm \
+ && sudo yum install -y cvmfs \
+ && sudo mkdir /etc/cvmfs/keys/ihep.ac.cn \
+ && sudo curl -o /etc/cvmfs/keys/ihep.ac.cn/ihep.ac.cn.pub http://cvmfs-stratum-one.ihep.ac.cn/cvmfs/software/client_configure/ihep.ac.cn/ihep.ac.cn.pub \
+ && sudo curl -o /etc/cvmfs/domain.d/ihep.ac.cn.conf http://cvmfs-stratum-one.ihep.ac.cn/cvmfs/software/client_configure/ihep.ac.cn.conf \
+ && echo "CVMFS_REPOSITORIES='sft.cern.ch,cepcsw.ihep.ac.cn,geant4.cern.ch'" | sudo tee /etc/cvmfs/default.local \
+ && echo "CVMFS_HTTP_PROXY=DIRECT" | sudo tee -a /etc/cvmfs/default.local \
+ && cat /etc/cvmfs/default.local \
+ && sudo mkdir -p /cvmfs/sft.cern.ch \
+ && sudo mkdir -p /cvmfs/cepcsw.ihep.ac.cn \
+ && sudo mkdir -p /cvmfs/geant4.cern.ch; \
+ fi
+
+# START Container:
+# # docker run --privileged --rm -i -t cepc/cepcsw-cvmfs:el9 /bin/bash
+# Due to the fuse issue, following commands need to be run inside container when --privileged is specified
+# $ mount -t cvmfs sft.cern.ch /cvmfs/sft.cern.ch
+# $ mount -t cvmfs geant4.cern.ch /cvmfs/geant4.cern.ch
+# $ mount -t cvmfs cepcsw.ihep.ac.cn /cvmfs/cepcsw.ihep.ac.cn
+
+##############################################################################
+# Install necessary packages
+##############################################################################
+
+RUN dnf install -y git \
+ && dnf install -y libglvnd-devel \
+ && dnf install -y mesa-libGLU-devel \
+ && dnf install -y libXmu-devel \
+ && dnf install -y motif-devel \
+ && dnf install -y make \
+ && dnf install -y gcc-c++ gcc binutils \
+ && dnf install -y libuuid-devel \
+ && dnf clean -y all \
+ && rm -rf /var/cache/dnf
+
diff --git a/docker/el9/build.sh b/docker/el9/build.sh
new file mode 100644
index 0000000000000000000000000000000000000000..05c02059889b9e81a7f278d8393da107db017ecd
--- /dev/null
+++ b/docker/el9/build.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+docker build -t cepc/cepcsw-cvmfs:el9 . --build-arg CVMFSMOD=INSIDE && docker push cepc/cepcsw-cvmfs:el9
+docker build -t cepc/cepcsw:el9 . && docker push cepc/cepcsw:el9