Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 75 additions & 29 deletions .github/workflows/ci-buildmatrix-cpp11.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,42 +3,88 @@ name: cpp11-buildmatrix

# Controls when the workflow will run
on:
# pull_request:
# branches: [main, master]
pull_request:
workflow_dispatch:

jobs:
build:
strategy:
matrix:
os: [ubuntu-latest]
root:
- "rootproject/root:6.24.06-centos7"
runs-on: ${{ matrix.os }}
container: ${{ matrix.root }}

# Job 1: run on Ubuntu host (no container) to execute Node20-based actions safely
source:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout source
uses: actions/checkout@v4

- name: vbf
- name: Create source tarball
run: |
curl https://syncandshare.desy.de/index.php/s/${{ secrets.VBFcpp11 }}/download > VBF.tar.gz
mkdir VBF && tar -xzf VBF.tar.gz -C VBF --strip-components=1
cd VBF && ./configure --prefix=$(echo $GITHUB_WORKSPACE)/VBF
make
make install
set -euo pipefail
# Use git archive to avoid including .git directory and prevent 'file changed as we read it' warnings
git archive --format=tar HEAD | gzip > src.tgz

- name: Upload source artifact
# v4 okay here (runs on ubuntu host with modern glibc)
uses: actions/upload-artifact@v4
with:
name: src
path: src.tgz

# Job 2: build inside CentOS7 ROOT container avoiding Node20 (use only Node16-compatible actions)
build:
needs: source
runs-on: ubuntu-latest
env:
ROOT_IMAGE: rootproject/root:6.24.06-centos7
steps:
- name: Download source artifact
uses: actions/download-artifact@v4
with:
name: src

- name: sofa
- name: Extract source
run: tar -xzf src.tgz

- name: Build inside ROOT CentOS7 container
env:
VBF_TOKEN: ${{ secrets.VBFcpp11 }}
SOFA20231011: ${{ secrets.SOFA20231011 }}
run: |
curl https://syncandshare.desy.de/index.php/s/${{ secrets.SOFA }}/download > sofa/sofa.tar.gz
./install_sofa.sh
set -euo pipefail
echo "Using ROOT image: $ROOT_IMAGE"
docker run --rm \
-e VBF_TOKEN="$VBF_TOKEN" \
-e SOFA20231011="$SOFA20231011" \
-v "$PWD:/workspace" \
-w /workspace \
"$ROOT_IMAGE" /bin/bash -c '
set -euo pipefail
echo "ROOT version: $(root-config --version)"
# Build VBF
curl -L "https://syncandshare.desy.de/index.php/s/${VBF_TOKEN}/download" -o VBF.tar.gz
mkdir -p VBF && tar -xzf VBF.tar.gz -C VBF --strip-components=1
pushd VBF
./configure --prefix=/workspace/VBF
make -j4
make install
popd
# Install SOFA
mkdir -p sofa
curl -L "https://syncandshare.desy.de/index.php/s/${SOFA20231011}/download" -o sofa/sofa.tar.gz
./install_sofa.sh
# Build EventDisplay
export EVNDISPSYS=/workspace
export VBFSYS=/workspace/VBF
export SOFASYS=/sofa
export LD_LIBRARY_PATH=$EVNDISPSYS/obj:$EVNDISPSYS/lib:$VBFSYS/lib:${LD_LIBRARY_PATH:-}
make -j4 VTS
'

- name: eventdisplay
- name: Archive build outputs
if: always()
run: |
root-config --version
export EVNDISPSYS=$(echo $GITHUB_WORKSPACE)
export VBFSYS=$(echo $GITHUB_WORKSPACE)/VBF
export LD_LIBRARY_PATH="${EVNDISPSYS}/obj:${EVNDISPSYS}/lib:${LD_LIBRARY_PATH}"
export LD_LIBRARY_PATH="${VBFSYS}/lib:${LD_LIBRARY_PATH}"
export SOFASYS=/sofa
make -j 4 VTS
tar -czf build-artifacts.tgz VBF obj lib || true

- name: Upload build artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: build-artifacts.tgz
4 changes: 2 additions & 2 deletions .github/workflows/ci-buildmatrix-cpp17.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,15 @@ jobs:

- name: vbf
run: |
curl https://syncandshare.desy.de/index.php/s/${{ secrets.VBFcpp17 }}/download > VBF.tar.gz
curl -L https://syncandshare.desy.de/index.php/s/${{ secrets.VBFcpp17 }}/download -o VBF.tar.gz
mkdir VBF && tar -xzf VBF.tar.gz -C VBF --strip-components=1
cd VBF && ./configure --prefix=$(echo $GITHUB_WORKSPACE)/VBF
make
make install

- name: sofa
run: |
curl https://syncandshare.desy.de/index.php/s/${{ secrets.SOFA20231011 }}/download > sofa/sofa.tar.gz
curl -L https://syncandshare.desy.de/index.php/s/${{ secrets.SOFA20231011 }}/download -o sofa/sofa.tar.gz
./install_sofa.sh

- name: eventdisplay
Expand Down
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ repos:
args: ["--line-length=100"]
# https://black.readthedocs.io/en/stable/guides/using_black_with_other_tools.html?highlight=other%20tools#flake8
- repo: https://github.com/PyCQA/flake8
rev: 7.2.0
rev: 7.3.0
hooks:
- id: flake8
args: ["--max-line-length=100", "--extend-ignore=E203,E712"]
# https://github.com/pre-commit/pre-commit-hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
Expand Down
46 changes: 23 additions & 23 deletions dockerfiles/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,43 +7,43 @@ ARG NUM_CORES=4
RUN dnf install -y diffutils && dnf clean all

# VBF
ADD https://syncandshare.desy.de/index.php/s/NrnZNKfT8WxFpcn/download /workdir/VBF-$VBF_VERSION.tar.gz
ADD https://syncandshare.desy.de/index.php/s/7i29qcgzgS3zpEk/download /workdir/VBF-$VBF_VERSION.tar.gz
WORKDIR /workdir/
RUN mkdir VBF && tar -xzf VBF-$VBF_VERSION.tar.gz -C VBF --strip-components=1 && \
cd VBF && \
./configure --prefix=/opt/VBF && \
make && make install && make clean
ENV VBFSYS /opt/VBF
ENV EVNDISPSYS /opt/EventDisplay_v4
ENV SOFASYS "${EVNDISPSYS}/sofa"
ENV PATH ${VBFSYS}/bin:${PATH}
ENV LD_LIBRARY_PATH "${EVNDISPSYS}/obj:${EVNDISPSYS}/lib:${ROOTSYS}/lib:${VBFSYS}/lib:${LD_LIBRARY_PATH}"

# Environment (build stage)
ENV VBFSYS=/opt/VBF \
EVNDISPSYS=/opt/EventDisplay_v4 \
SOFASYS=/opt/EventDisplay_v4/sofa \
PATH=/opt/VBF/bin:$PATH \
LD_LIBRARY_PATH=/opt/EventDisplay_v4/obj:/opt/EventDisplay_v4/lib:$ROOTSYS/lib:/opt/VBF/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}

WORKDIR /opt/
RUN BUILD_BRANCH=$(echo ${BUILD_BRANCH} | sed 's#refs/tags/##') && \
git clone -b ${BUILD_BRANCH} https://github.com/VERITAS-Observatory/EventDisplay_v4.git --depth 1
ADD https://syncandshare.desy.de/index.php/s/RamRFYJtZjDGsfL/download ${SOFASYS}/sofa.tar.gz

RUN cd ${EVNDISPSYS} \
&& ./install_sofa.sh && make -j$NUM_CORES VTS
WORKDIR /opt/EventDisplay_v4
RUN ./install_sofa.sh && make -j"${NUM_CORES}" VTS

FROM rootproject/root:${ROOT_VERSION}
WORKDIR /opt/
COPY --from=build /opt/VBF /opt/VBF
COPY --from=build /opt/EventDisplay_v4 /opt/EventDisplay_v4

LABEL maintainer.name="Eventdisplay Team"
LABEL maintainer.email="gernot.maier@desy.de"

ENV EVNDISPSYS /opt/EventDisplay_v4
ENV VBFSYS /opt/VBF
ENV LD_LIBRARY_PATH "${VBFSYS}/lib/:${LD_LIBRARY_PATH}"
ENV PATH ${VBFSYS}/bin:${PATH}
ENV LD_LIBRARY_PATH "${EVNDISPSYS}/obj:${EVNDISPSYS}/lib:${ROOTSYS}/lib:${VBFSYS}/lib:${LD_LIBRARY_PATH}"
ENV SOFASYS "${EVNDISPSYS}/sofa"

# data and user data and log directory (to be mounted)
ENV VERITAS_DATA_DIR /opt/data
ENV VERITAS_LOG_DIR /opt/data
ENV VERITAS_USER_DATA_DIR /opt/user_data
ENV VERITAS_USER_LOG_DIR /opt/user_data
LABEL maintainer.name="Eventdisplay Team" \
maintainer.email="gernot.maier@desy.de"

# Environment (runtime stage)
ENV EVNDISPSYS=/opt/EventDisplay_v4 \
VBFSYS=/opt/VBF \
SOFASYS=/opt/EventDisplay_v4/sofa \
PATH=/opt/VBF/bin:$PATH \
LD_LIBRARY_PATH=/opt/EventDisplay_v4/obj:/opt/EventDisplay_v4/lib:$ROOTSYS/lib:/opt/VBF/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} \
VERITAS_DATA_DIR=/opt/data \
VERITAS_LOG_DIR=/opt/data \
VERITAS_USER_DATA_DIR=/opt/user_data \
VERITAS_USER_LOG_DIR=/opt/user_data
1 change: 1 addition & 0 deletions docs/changes/307.maintenance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix github action worklows to compile Eventdisplay. Add cpp11 workflow.
Loading