forked from Kistler-Group/sdbus-cpp
Introduce CI workflow based on GitHub Actions (#114)
This introduces GitHub CI which runs builds and tests in a matrix configuration. It also changes the systemd repo to stable one. And puts the CI badge (plus a few more badges) to the README page. Fixes #44
This commit is contained in:
committed by
GitHub
parent
2f7b35c5a8
commit
3b735bf1aa
68
.github/workflows/ci.yml
vendored
Normal file
68
.github/workflows/ci.yml
vendored
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-18.04, ubuntu-20.04]
|
||||||
|
compiler: [g++, clang]
|
||||||
|
build: [shared-libsystemd]
|
||||||
|
include:
|
||||||
|
- os: ubuntu-20.04
|
||||||
|
compiler: g++
|
||||||
|
build: embedded-static-libsystemd
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: install-libsystemd-toolchain
|
||||||
|
if: matrix.build == 'embedded-static-libsystemd'
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -y
|
||||||
|
sudo apt-get install -y meson ninja-build libcap-dev libmount-dev m4 gperf
|
||||||
|
- name: install-libsystemd-dev
|
||||||
|
if: matrix.build == 'shared-libsystemd'
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -y
|
||||||
|
sudo apt-get install -y libsystemd-dev
|
||||||
|
- name: install-clang
|
||||||
|
if: matrix.compiler == 'clang'
|
||||||
|
run: |
|
||||||
|
sudo apt-get install -y clang
|
||||||
|
sudo update-alternatives --remove-all cc
|
||||||
|
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 10
|
||||||
|
sudo update-alternatives --remove-all c++
|
||||||
|
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 10
|
||||||
|
- name: configure-debug
|
||||||
|
if: matrix.build == 'shared-libsystemd' && matrix.os == 'ubuntu-18.04'
|
||||||
|
run: |
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-O0 -g -W -Wextra -Wall -Wnon-virtual-dtor -Werror" -DBUILD_TESTS=ON -DENABLE_PERF_TESTS=ON -DENABLE_STRESS_TESTS=ON -DBUILD_CODE_GEN=ON ..
|
||||||
|
- name: configure-release
|
||||||
|
if: matrix.build == 'shared-libsystemd' && matrix.os == 'ubuntu-20.04'
|
||||||
|
run: |
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-O3 -DNDEBUG -W -Wextra -Wall -Wnon-virtual-dtor -Werror" -DBUILD_TESTS=ON -DENABLE_PERF_TESTS=ON -DENABLE_STRESS_TESTS=ON -DBUILD_CODE_GEN=ON ..
|
||||||
|
- name: configure-with-embedded-libsystemd
|
||||||
|
if: matrix.build == 'embedded-static-libsystemd'
|
||||||
|
run: |
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DENABLE_PERF_TESTS=ON -DENABLE_STRESS_TESTS=ON -DBUILD_CODE_GEN=ON -DBUILD_LIBSYSTEMD=ON -DLIBSYSTEMD_VERSION=244 ..
|
||||||
|
- name: make
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
make -j2
|
||||||
|
- name: verify
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
sudo make install
|
||||||
|
ctest
|
@ -1,6 +1,10 @@
|
|||||||
sdbus-c++
|
sdbus-c++
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
sdbus-c++ is a high-level C++ D-Bus library for Linux designed to provide expressive, easy-to-use API in modern C++. It adds another layer of abstraction on top of sd-bus, a nice, fresh C D-Bus implementation by systemd.
|
sdbus-c++ is a high-level C++ D-Bus library for Linux designed to provide expressive, easy-to-use API in modern C++. It adds another layer of abstraction on top of sd-bus, a nice, fresh C D-Bus implementation by systemd.
|
||||||
|
|
||||||
sdbus-c++ has been written primarily as a replacement of dbus-c++, which currently suffers from a number of (unresolved) bugs, concurrency issues and inherent design complexities and limitations. sdbus-c++ has learned from dbus-c++ and has chosen a different path, a path of simple yet powerful design that is intuitive and friendly to the user and inherently free of those bugs.
|
sdbus-c++ has been written primarily as a replacement of dbus-c++, which currently suffers from a number of (unresolved) bugs, concurrency issues and inherent design complexities and limitations. sdbus-c++ has learned from dbus-c++ and has chosen a different path, a path of simple yet powerful design that is intuitive and friendly to the user and inherently free of those bugs.
|
||||||
|
@ -35,12 +35,12 @@ message(STATUS "Building with embedded libsystemd v${LIBSYSTEMD_VERSION}")
|
|||||||
include(ExternalProject)
|
include(ExternalProject)
|
||||||
ExternalProject_Add(LibsystemdBuildProject
|
ExternalProject_Add(LibsystemdBuildProject
|
||||||
PREFIX libsystemd-v${LIBSYSTEMD_VERSION}
|
PREFIX libsystemd-v${LIBSYSTEMD_VERSION}
|
||||||
GIT_REPOSITORY https://github.com/systemd/systemd.git
|
GIT_REPOSITORY https://github.com/systemd/systemd-stable.git
|
||||||
GIT_TAG v${LIBSYSTEMD_VERSION}
|
GIT_TAG v${LIBSYSTEMD_VERSION}-stable
|
||||||
GIT_SHALLOW 1
|
GIT_SHALLOW 1
|
||||||
UPDATE_COMMAND ""
|
UPDATE_COMMAND ""
|
||||||
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E remove <BINARY_DIR>/*
|
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E remove <BINARY_DIR>/*
|
||||||
COMMAND ${MESON} --prefix=<INSTALL_DIR> --buildtype=${LIBSYSTEMD_BUILD_TYPE} -Dstatic-libsystemd=pic <SOURCE_DIR> <BINARY_DIR>
|
COMMAND ${MESON} --prefix=<INSTALL_DIR> --buildtype=${LIBSYSTEMD_BUILD_TYPE} -Dstatic-libsystemd=pic -Dselinux=false <SOURCE_DIR> <BINARY_DIR>
|
||||||
BUILD_COMMAND ${BUILD_VERSION_H}
|
BUILD_COMMAND ${BUILD_VERSION_H}
|
||||||
COMMAND ${NINJA} -C <BINARY_DIR> libsystemd.a
|
COMMAND ${NINJA} -C <BINARY_DIR> libsystemd.a
|
||||||
BUILD_ALWAYS 0
|
BUILD_ALWAYS 0
|
||||||
|
Reference in New Issue
Block a user