Build Installer #45
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |