Celix Ubuntu #2324
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: Celix Ubuntu | |
on: | |
push: | |
pull_request: | |
schedule: | |
- cron: '0 0 * * *' | |
jobs: | |
build-conan: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
compiler: [ [gcc,g++], [clang,clang++] ] | |
type: [ Debug ] | |
timeout-minutes: 120 | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v3.3.0 | |
- name: Install conan | |
run: | | |
sudo pip install -U conan==1.59.0 | |
- name: Setup Conan Profile | |
env: | |
CC: ${{ matrix.compiler[0] }} | |
CXX: ${{ matrix.compiler[1] }} | |
run: | | |
# build profile | |
conan profile new release --detect | |
conan profile update settings.build_type=Release release | |
#Note no backwards compatiblity for gcc5 needed, setting libcxx to c++11. | |
conan profile update settings.compiler.libcxx=libstdc++11 release | |
conan profile show release | |
# host profile | |
conan profile new default --detect | |
conan profile update settings.build_type=${{ matrix.type }} default | |
#Note no backwards compatiblity for gcc5 needed, setting libcxx to c++11. | |
conan profile update settings.compiler.libcxx=libstdc++11 default | |
conan profile show default | |
- name: Configure and install dependencies | |
env: | |
CC: ${{ matrix.compiler[0] }} | |
CXX: ${{ matrix.compiler[1] }} | |
CONAN_BUILD_OPTIONS: | | |
-o celix:enable_testing=True | |
-o celix:enable_address_sanitizer=True | |
-o celix:build_all=True | |
-o celix:enable_testing_for_cxx14=True | |
-o celix:enable_testing_dependency_manager_for_cxx11=True | |
run: | | |
#force require libcurl 7.64.1, due to a sha256 verify issue in libcurl/7.87.0 | |
sudo apt-get install -yq --no-install-recommends ninja-build | |
conan install . celix/ci -pr:b release -pr:h default -if build ${CONAN_BUILD_OPTIONS} -b missing -b cpputest --require-override=libcurl/7.64.1 --require-override=openssl/1.1.1s | |
- name: Build | |
env: | |
CC: ${{ matrix.compiler[0] }} | |
CXX: ${{ matrix.compiler[1] }} | |
CONAN_CMAKE_GENERATOR: Ninja | |
run: | | |
conan build . -bf build --configure | |
conan build . -bf build --build | |
- name: Test | |
run: | | |
cd build | |
source activate_run.sh | |
ctest --output-on-failure | |
source deactivate_run.sh | |
- name: Test Installed Celix | |
env: | |
CC: ${{ matrix.compiler[0] }} | |
CXX: ${{ matrix.compiler[1] }} | |
CONAN_CMAKE_GENERATOR: Ninja | |
run: | | |
conan create -pr:b release -pr:h default -tf examples/conan_test_package -tbf test-build -o celix:celix_cxx17=True -o celix:celix_install_deprecated_api=True --require-override=libcurl/7.64.1 --require-override=openssl/1.1.1s . | |
build-apt: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 120 | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v3.3.0 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -yq --no-install-recommends \ | |
build-essential \ | |
curl \ | |
uuid-dev \ | |
libzip-dev \ | |
libjansson-dev \ | |
libcurl4-openssl-dev \ | |
default-jdk \ | |
cmake \ | |
libffi-dev \ | |
libxml2-dev \ | |
libczmq-dev \ | |
libcpputest-dev \ | |
rapidjson-dev \ | |
libavahi-compat-libdnssd-dev \ | |
libcivetweb-dev \ | |
civetweb | |
- name: Build | |
env: | |
BUILD_OPTIONS: | | |
-DBUILD_EXPERIMENTAL=ON | |
-DENABLE_TESTING=ON | |
-DENABLE_TESTING_DEPENDENCY_MANAGER_FOR_CXX11=ON | |
-DENABLE_TESTING_FOR_CXX14=ON | |
-DRSA_JSON_RPC=ON | |
-DRSA_SHM=ON | |
-DRSA_REMOTE_SERVICE_ADMIN_SHM_V2=ON | |
-DSHELL_BONJOUR=ON | |
-DCMAKE_BUILD_TYPE=Debug | |
run: | | |
mkdir build install | |
cd build | |
cmake ${BUILD_OPTIONS} -DCMAKE_INSTALL_PREFIX=../install .. | |
make -j $(nproc) && make install | |
- name: Test | |
run: | | |
cd $GITHUB_WORKSPACE/build | |
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH:$(pwd)/utils:$(pwd)/framework:$(pwd)/dfi | |
ctest --output-on-failure |