Skip to content

Build Installer

Build Installer #45

Workflow file for this run

name: Build Installer
on:
workflow_dispatch:
jobs:
build:
strategy:
matrix:
os_arch:
[
{ os: windows-2022, arch: x64 },
{ os: macos-15, arch: arm64 },
{ os: macos-15, arch: x64 }
]
runs-on: ${{ matrix.os_arch.os }}
env:
OS_ARCH: ${{ matrix.os_arch.os }}-${{ matrix.os_arch.arch }}
steps:
- name: Install build system (ubuntu)
if: matrix.os_arch.os == 'ubuntu-24.04'
run: |
sudo apt-get install -y pipx
pipx install conan ninja
- name: Install build system (windows-2022, macos-15)
if: matrix.os_arch.os == 'windows-2022' || matrix.os_arch.os == 'macos-15'
run: pip install conan ninja
- name: conan cache
id: conan_cache
uses: actions/cache@v4
with:
path: ~/.conan2
key: ${{ env.OS_ARCH }}-conan
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Compiler (Windows)
uses: ilammy/msvc-dev-cmd@v1
if: matrix.os_arch.os == 'windows-2022'
- name: Setup Compiler (MacOS)
if: matrix.os_arch.os == 'macos-15'
run: |
echo "CC=$(brew --prefix llvm@18)/bin/clang" >> $GITHUB_ENV
echo "CXX=$(brew --prefix llvm@18)/bin/clang++" >> $GITHUB_ENV
- name: Install OpenCL (Ubuntu)
if: matrix.os_arch.os == 'ubuntu-24.04'
run: |
sudo apt-get install -y ocl-icd-opencl-dev
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: '6.8.*'
modules: 'qtmultimedia'
cache: true
- name: Conan setup
run: |
conan config install .github/conan_profiles/${{ env.OS_ARCH }} -tf profiles
- name: Install libxdaq
run: |
git submodule update --init --recursive
conan create libxdaq-dist --profile:all ${{ env.OS_ARCH }} -s build_type=Release --build=missing
- name: Build XDAQ-RHX
run: |
conan install . --build=missing --profile:all ${{ env.OS_ARCH }} -s build_type=Release
cmake -S . -B build/Release --preset conan-release
cmake --build build/Release --preset conan-release
cmake --build build/Release --preset conan-release --target package
- name: Tar binaries to keep file permissions
shell: bash
run: |
tar -cvf build/package.tar -C build/Release/package $(ls build/Release/package | grep XDAQ-RHX)
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.OS_ARCH }}
path: build/package.tar