Skip to content
Open
Show file tree
Hide file tree
Changes from 4 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
52 changes: 52 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: CI

on:
push:
branches:
- master
pull_request:

env:
IMAGE_PREFIX: ghcr.io/fairrootgroup/odc-ci

jobs:
build-and-test:
runs-on: ubuntu-latest
permissions:
contents: read
packages: read

strategy:
fail-fast: false
matrix:
include:
- fedora: fedora39
label: fedora-39-x86_64-gcc-13
- fedora: fedora40
label: fedora-40-x86_64-gcc-14
- fedora: fedora41
label: fedora-41-x86_64-gcc-14
- fedora: fedora42
label: fedora-42-x86_64-gcc-15
- fedora: fedora42-boost190
label: fedora-42-x86_64-gcc-15-boost-1.90
- fedora: fedora42
label: sanitizers
extra: -DENABLE_SANITIZERS=ON

container:
image: ${{ format('{0}:{1}', 'ghcr.io/fairrootgroup/odc-ci', matrix.fedora) }}
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Build and test
env:
LABEL: ${{ matrix.label }}
run: ctest -S ODCTest.cmake -VV --output-on-failure ${{ matrix.extra }}
54 changes: 54 additions & 0 deletions .github/workflows/docker-images.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Docker Images

on:
push:
branches:
- master
paths:
- 'utils/ci/Dockerfile.*'
workflow_dispatch:
Comment thread
rbx marked this conversation as resolved.

env:
REGISTRY: ghcr.io
IMAGE_PREFIX: ghcr.io/fairrootgroup/odc-ci

jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

strategy:
fail-fast: false
matrix:
include:
- fedora: fedora39
- fedora: fedora40
- fedora: fedora41
- fedora: fedora42
- fedora: fedora42-boost190

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build and push
uses: docker/build-push-action@v6
with:
context: utils/ci
file: utils/ci/Dockerfile.${{ matrix.fedora }}
push: true
tags: ${{ env.IMAGE_PREFIX }}:${{ matrix.fedora }}
cache-from: type=registry,ref=${{ env.IMAGE_PREFIX }}:${{ matrix.fedora }}-cache
cache-to: type=registry,ref=${{ env.IMAGE_PREFIX }}:${{ matrix.fedora }}-cache,mode=max
34 changes: 16 additions & 18 deletions utils/ci/fedora38_dds3.12.def → utils/ci/Dockerfile.fedora39
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
Bootstrap: docker
From: fedora:38
FROM fedora:39

%post
dnf -y update
RUN dnf -y update && \
dnf -y install abseil-cpp-devel \
asio-devel \
boost-devel \
Expand All @@ -23,26 +21,26 @@ From: fedora:38
ninja-build \
patch \
wget \
zeromq-devel
zeromq-devel && \
dnf -y clean all

git clone https://github.com/FairRootGroup/FairCMakeModules
cmake -GNinja -S FairCMakeModules -B FairCMakeModules_build -DCMAKE_INSTALL_PREFIX=/usr
cmake --build FairCMakeModules_build --target install
RUN git clone https://github.com/FairRootGroup/FairCMakeModules && \
cmake -GNinja -S FairCMakeModules -B FairCMakeModules_build -DCMAKE_INSTALL_PREFIX=/usr && \
cmake --build FairCMakeModules_build --target install && \
rm -rf FairCMakeModules FairCMakeModules_build

git clone -b v2.1.0 https://github.com/FairRootGroup/FairLogger
cmake -GNinja -S FairLogger -B FairLogger_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
cmake --build FairLogger_build --target install
RUN git clone -b v2.3.1 https://github.com/FairRootGroup/FairLogger && \
cmake -GNinja -S FairLogger -B FairLogger_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release && \
cmake --build FairLogger_build --target install && \
rm -rf FairLogger FairLogger_build

git clone -b v1.9.2 https://github.com/FairRootGroup/FairMQ
cmake -GNinja -S FairMQ -B FairMQ_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
cmake --build FairMQ_build --target install
RUN git clone -b v1.10.1 https://github.com/FairRootGroup/FairMQ && \
cmake -GNinja -S FairMQ -B FairMQ_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release && \
cmake --build FairMQ_build --target install && \
rm -rf FairMQ FairMQ_build

git clone -b 3.12 https://github.com/FairRootGroup/DDS
cmake -GNinja -S DDS -B DDS_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_dds-tutorials=OFF
cmake --build DDS_build --target wn_bin
cmake --build DDS_build --target install
RUN git clone -b 3.16 https://github.com/FairRootGroup/DDS && \
cmake -GNinja -S DDS -B DDS_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_dds-tutorials=OFF && \
cmake --build DDS_build --target wn_bin && \
cmake --build DDS_build --target install && \
rm -rf DDS DDS_build
46 changes: 46 additions & 0 deletions utils/ci/Dockerfile.fedora40
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
FROM fedora:40

RUN dnf -y update && \
dnf -y install abseil-cpp-devel \
asio-devel \
boost-devel \
ca-certificates \
clang-tools-extra \
cmake \
flatbuffers-devel \
flatbuffers-compiler \
fmt-devel \
gcc-c++ \
git \
grpc-devel \
grpc-plugins \
libasan \
liblsan \
libubsan \
libxml2 \
ninja-build \
patch \
wget \
zeromq-devel && \
dnf -y clean all

RUN git clone https://github.com/FairRootGroup/FairCMakeModules && \
cmake -GNinja -S FairCMakeModules -B FairCMakeModules_build -DCMAKE_INSTALL_PREFIX=/usr && \
cmake --build FairCMakeModules_build --target install && \
rm -rf FairCMakeModules FairCMakeModules_build

RUN git clone -b v2.3.1 https://github.com/FairRootGroup/FairLogger && \
cmake -GNinja -S FairLogger -B FairLogger_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release && \
cmake --build FairLogger_build --target install && \
rm -rf FairLogger FairLogger_build

RUN git clone -b v1.10.1 https://github.com/FairRootGroup/FairMQ && \
cmake -GNinja -S FairMQ -B FairMQ_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release && \
cmake --build FairMQ_build --target install && \
rm -rf FairMQ FairMQ_build

RUN git clone -b 3.16 https://github.com/FairRootGroup/DDS && \
cmake -GNinja -S DDS -B DDS_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_dds-tutorials=OFF && \
cmake --build DDS_build --target wn_bin && \
cmake --build DDS_build --target install && \
rm -rf DDS DDS_build
46 changes: 46 additions & 0 deletions utils/ci/Dockerfile.fedora41
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
FROM fedora:41

RUN dnf -y update && \
dnf -y install abseil-cpp-devel \
asio-devel \
boost-devel \
ca-certificates \
clang-tools-extra \
cmake \
flatbuffers-devel \
flatbuffers-compiler \
fmt-devel \
gcc-c++ \
git \
grpc-devel \
grpc-plugins \
libasan \
liblsan \
libubsan \
libxml2 \
ninja-build \
patch \
wget \
zeromq-devel && \
dnf -y clean all

RUN git clone https://github.com/FairRootGroup/FairCMakeModules && \
cmake -GNinja -S FairCMakeModules -B FairCMakeModules_build -DCMAKE_INSTALL_PREFIX=/usr && \
cmake --build FairCMakeModules_build --target install && \
rm -rf FairCMakeModules FairCMakeModules_build

RUN git clone -b v2.3.1 https://github.com/FairRootGroup/FairLogger && \
cmake -GNinja -S FairLogger -B FairLogger_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release && \
cmake --build FairLogger_build --target install && \
rm -rf FairLogger FairLogger_build

RUN git clone -b v1.10.1 https://github.com/FairRootGroup/FairMQ && \
cmake -GNinja -S FairMQ -B FairMQ_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release && \
cmake --build FairMQ_build --target install && \
rm -rf FairMQ FairMQ_build

RUN git clone -b 3.16 https://github.com/FairRootGroup/DDS && \
cmake -GNinja -S DDS -B DDS_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_dds-tutorials=OFF && \
cmake --build DDS_build --target wn_bin && \
cmake --build DDS_build --target install && \
rm -rf DDS DDS_build
46 changes: 46 additions & 0 deletions utils/ci/Dockerfile.fedora42
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
FROM fedora:42

RUN dnf -y update && \
dnf -y install abseil-cpp-devel \
asio-devel \
boost-devel \
ca-certificates \
clang-tools-extra \
cmake \
flatbuffers-devel \
flatbuffers-compiler \
fmt-devel \
gcc-c++ \
git \
grpc-devel \
grpc-plugins \
libasan \
liblsan \
libubsan \
libxml2 \
ninja-build \
patch \
wget \
zeromq-devel && \
dnf -y clean all

RUN git clone https://github.com/FairRootGroup/FairCMakeModules && \
cmake -GNinja -S FairCMakeModules -B FairCMakeModules_build -DCMAKE_INSTALL_PREFIX=/usr && \
cmake --build FairCMakeModules_build --target install && \
rm -rf FairCMakeModules FairCMakeModules_build

RUN git clone -b v2.3.1 https://github.com/FairRootGroup/FairLogger && \
cmake -GNinja -S FairLogger -B FairLogger_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release && \
cmake --build FairLogger_build --target install && \
rm -rf FairLogger FairLogger_build

RUN git clone -b v1.10.1 https://github.com/FairRootGroup/FairMQ && \
cmake -GNinja -S FairMQ -B FairMQ_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release && \
cmake --build FairMQ_build --target install && \
rm -rf FairMQ FairMQ_build

RUN git clone -b 3.16 https://github.com/FairRootGroup/DDS && \
cmake -GNinja -S DDS -B DDS_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_dds-tutorials=OFF && \
cmake --build DDS_build --target wn_bin && \
cmake --build DDS_build --target install && \
rm -rf DDS DDS_build
54 changes: 54 additions & 0 deletions utils/ci/Dockerfile.fedora42-boost190
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
FROM fedora:42

RUN dnf -y update && \
dnf -y install abseil-cpp-devel \
asio-devel \
ca-certificates \
clang-tools-extra \
cmake \
flatbuffers-devel \
flatbuffers-compiler \
fmt-devel \
gcc-c++ \
git \
grpc-devel \
grpc-plugins \
libasan \
liblsan \
libubsan \
libxml2 \
ninja-build \
patch \
wget \
zeromq-devel && \
dnf -y clean all

RUN dnf -y remove 'boost-devel' && dnf -y clean all

RUN wget https://archives.boost.io/release/1.90.0/source/boost_1_90_0.tar.gz && \
tar xzf boost_1_90_0.tar.gz && \
cd boost_1_90_0 && \
./bootstrap.sh --prefix=/usr && \
./b2 install -j$(nproc) --without-python --without-mpi && \
cd .. && rm -rf boost_1_90_0 boost_1_90_0.tar.gz

RUN git clone https://github.com/FairRootGroup/FairCMakeModules && \
cmake -GNinja -S FairCMakeModules -B FairCMakeModules_build -DCMAKE_INSTALL_PREFIX=/usr && \
cmake --build FairCMakeModules_build --target install && \
rm -rf FairCMakeModules FairCMakeModules_build

RUN git clone -b v2.3.1 https://github.com/FairRootGroup/FairLogger && \
cmake -GNinja -S FairLogger -B FairLogger_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release && \
cmake --build FairLogger_build --target install && \
rm -rf FairLogger FairLogger_build

RUN git clone -b v1.10.1 https://github.com/FairRootGroup/FairMQ && \
cmake -GNinja -S FairMQ -B FairMQ_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release && \
cmake --build FairMQ_build --target install && \
rm -rf FairMQ FairMQ_build

RUN git clone -b 3.16 https://github.com/FairRootGroup/DDS && \
cmake -GNinja -S DDS -B DDS_build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_dds-tutorials=OFF && \
cmake --build DDS_build --target wn_bin && \
cmake --build DDS_build --target install && \
rm -rf DDS DDS_build
27 changes: 0 additions & 27 deletions utils/ci/centos.8stream.alice.def

This file was deleted.

Loading
Loading