Skip to content

fixing pyuda import when ENABLE_CAPNP is set #645

fixing pyuda import when ENABLE_CAPNP is set

fixing pyuda import when ENABLE_CAPNP is set #645

Workflow file for this run

name: Build
on:
push:
branches:
- main
- develop
- 'feature/**'
- 'release/**'
pull_request:
branches:
- main
#env:
# BUILD_TYPE: Release
jobs:
build:
strategy:
matrix:
# os: [ubuntu-latest, windows-latest, macos-latest]
os: [macos-latest, ubuntu-latest]
shared: [ON, OFF]
release: [Debug]
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
with:
fetch-depth: '0'
fetch-tags: 'true'
- uses: actions/github-script@v6
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Install linux dependencies
if: matrix.os == 'ubuntu-latest'
run: >
sudo apt-get update && sudo apt-get install -y
git
libboost-dev
libboost-program-options-dev
libboost-filesystem-dev
libboost-regex-dev
libssl-dev
cmake
build-essential
pkg-config
libxml2-dev
libspdlog-dev
ninja-build
capnproto
libcapnp-dev
python3-dev
python3-pip
python3-venv
libtirpc-dev
# Capnproto package on Ubuntu 24.04 has broken CMake file
- name: Fix Capnproto on Ubuntu
if: matrix.os == 'ubuntu-latest'
run: >
sudo sed -i 's/if (yes) # WITH_LIBATOMIC/if (no) # WITH_LIBATOMIC/' \
/usr/lib/x86_64-linux-gnu/cmake/CapnProto/CapnProtoConfig.cmake
- name: Install macos dependencies
if: matrix.os == 'macos-latest'
run: >
brew update-reset && brew install
git
boost
openssl
cmake
pkg-config
libxml2
spdlog
ninja
capnp
# - name: Cache windows packages
# id: cache-vcpkg
# uses: actions/cache@v3
# env:
# cache-name: cache-vcpkg-packages
# with:
# path: C:/vcpkg
# key: ${{ runner.os }}-build-${{ env.cache-name }}
- name: Install windows dependencies
if: matrix.os == 'windows-latest'
run: >
vcpkg install --triplet x64-mingw-static --binarysource="clear;x-gha,readwrite"
libxml2
capnproto
boost-program-options
boost-format
boost-algorithm
boost-multi-array
boost-filesystem
boost-regex
openssl
dlfcn-win32
spdlog
tomlplusplus
- name: Configure CMake (linux)
if: matrix.os == 'ubuntu-latest'
run: >
cmake -G Ninja -B build
-DBUILD_SHARED_LIBS=${{ matrix.shared }}
-DCMAKE_BUILD_TYPE=${{ matrix.release }}
- name: Configure CMake (macos)
if: matrix.os == 'macos-latest'
run: >
cmake -G Ninja -B build
-DBUILD_SHARED_LIBS=${{ matrix.shared }}
-DCMAKE_BUILD_TYPE=${{ matrix.release }}
-DOPENSSL_ROOT_DIR="$(brew --prefix openssl@3)"
- name: Configure portable XDR
if: matrix.os == 'windows-latest'
run: >
cd extlib
&& cmake -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -B build -G "MinGW Makefiles" .
- name: Build portable XDR
if: matrix.os == 'windows-latest'
run: cd extlib && cmake --build build
- name: Install portable XDR
if: matrix.os == 'windows-latest'
run: cd extlib && cmake --install build --prefix install
- name: Configure CMake (windows)
if: matrix.os == 'windows-latest'
run: >
XDR_ROOT=extlib/install cmake -G "MinGW Makefiles" -B build
-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake
-DBUILD_SHARED_LIBS=${{ matrix.shared }}
-DCMAKE_BUILD_TYPE=${{ matrix.release }}
- name: Build
run: cmake --build build --config ${{ matrix.release }}
- name: Install
if: matrix.os != 'windows-latest'
run: sudo cmake --install build --config ${{ matrix.release }}
- name: Install
if: matrix.os == 'windows-latest'
run: cmake --install build --config ${{ matrix.release }}
# - name: Install pyuda
# if: matrix.os == 'ubuntu-latest'
# run: >
# cp -r /usr/local/python_installer ${{github.workspace}}/python_installer &&
# python3 -m venv ${{github.workspace}}/venv &&
# source ${{github.workspace}}/venv/bin/activate &&
# pip3 install --upgrade pip &&
# pip3 install wheel Cython numpy six &&
# pip3 install ${{github.workspace}}/python_installer
# - name: Test pyuda import
# if: matrix.os == 'ubuntu-latest'
# run: >
# source ${{github.workspace}}/venv/bin/activate &&
# python3 -c 'import pyuda; client=pyuda.Client()'
# - name: Test
# working-directory: build
# # Execute tests defined by the CMake configuration.
# # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
# run: ctest -C ${{ matrix.release }}