mirror of
https://github.com/libratbag/libratbag.git
synced 2026-11-07 15:14:38 +01:00
245 lines
6.5 KiB
YAML
245 lines
6.5 KiB
YAML
libratbag_references:
|
|
build_dependencies: &build_dependencies
|
|
FEDORA_DEP_BUILD: gcc gcc-c++ meson dbus-daemon glib2-devel json-glib-devel libevdev-devel libudev-devel libunistring-devel python3-devel python3-evdev swig
|
|
FEDORA_DEP_TEST: check-devel python3-gobject python3-lxml valgrind
|
|
FEDORA_DEP_DOC: python3-sphinx python3-sphinx_rtd_theme
|
|
UBUNTU_DEP_BUILD: gcc g++ meson pkg-config systemd libevdev-dev libglib2.0-dev libjson-glib-dev libsystemd-dev libudev-dev libunistring-dev python3-dev python3-evdev swig
|
|
UBUNTU_DEP_TEST: check python3-gi python3-lxml valgrind
|
|
default_settings: &default_settings
|
|
working_directory: ~/libratbag
|
|
environment:
|
|
LANG: C.UTF-8
|
|
build_default: &build_default
|
|
name: Build
|
|
command: |
|
|
rm -rf build
|
|
meson build ${MESON_PARAMS}
|
|
meson configure build
|
|
ninja -v -C build ${NINJA_ARGS}
|
|
environment:
|
|
MESON_PARAMS: --prefix=/usr
|
|
build_buildtype_plain: &build_buildtype_plain
|
|
run:
|
|
<<: *build_default
|
|
name: Build with buildtype plain
|
|
environment:
|
|
MESON_PARAMS: --prefix=/usr -Dbuildtype=plain
|
|
build_buildtype_release: &build_buildtype_release
|
|
run:
|
|
<<: *build_default
|
|
name: Build with buildtype release
|
|
environment:
|
|
MESON_PARAMS: --prefix=/usr -Dbuildtype=release
|
|
build_and_test: &build_and_test
|
|
run:
|
|
<<: *build_default
|
|
name: Build and test
|
|
environment:
|
|
NINJA_ARGS: test
|
|
build_with_docs: &build_with_docs
|
|
run:
|
|
<<: *build_default
|
|
name: Build with documentation
|
|
environment:
|
|
MESON_PARAMS: -Ddocumentation=true
|
|
install: &install
|
|
run:
|
|
name: Installing
|
|
command: ninja -C build install
|
|
check_install: &check_install
|
|
run:
|
|
name: Checking installation
|
|
command: |
|
|
PREFIX=/usr/local/
|
|
diff -u <(cd data/devices; ls *.device) <(cd $PREFIX/share/libratbag; ls *.device)
|
|
check_uninstall: &check_uninstall
|
|
run:
|
|
name: Checking if any files are left after uninstall
|
|
command: |
|
|
PREFIX=/root/test_install
|
|
meson build_install --prefix=$PREFIX
|
|
ninja -C build_install install
|
|
ninja -C build_install uninstall
|
|
if [ -d $PREFIX ]
|
|
then
|
|
tree $PREFIX
|
|
exit 1
|
|
fi
|
|
export_logs: &export_logs
|
|
store_artifacts:
|
|
path: ~/libratbag/build/meson-logs
|
|
start_dbus: &start_dbus
|
|
run:
|
|
name: Start dbus daemon
|
|
command: |
|
|
mkdir /run/dbus
|
|
/usr/bin/dbus-daemon --system --fork
|
|
|
|
fedora_prep_cache: &fedora_prep_cache
|
|
<<: *default_settings
|
|
steps:
|
|
- run:
|
|
name: Initializing Fedora dnf cache
|
|
command: dnf install -y --downloadonly git ${FEDORA_DEP_BUILD} ${FEDORA_DEP_TEST} ${FEDORA_DEP_DOC}
|
|
- persist_to_workspace:
|
|
root: /var/cache/
|
|
paths:
|
|
- dnf/*
|
|
environment:
|
|
*build_dependencies
|
|
|
|
fedora_fetch_cache: &fedora_fetch_cache
|
|
attach_workspace:
|
|
at: /var/cache/
|
|
|
|
fedora_install: &fedora_install
|
|
run:
|
|
name: Install prerequisites
|
|
command: |
|
|
echo keepcache=1 >> /etc/dnf/dnf.conf
|
|
dnf install -y git ${FEDORA_DEP_BUILD} ${FEDORA_DEP_TEST}
|
|
sed -i 's/systemd//' /etc/nsswitch.conf
|
|
|
|
fedora_settings: &fedora_settings
|
|
<<: *default_settings
|
|
steps:
|
|
- *fedora_fetch_cache
|
|
- *fedora_install
|
|
- checkout
|
|
- *start_dbus
|
|
- *build_and_test
|
|
- *install
|
|
- *check_install
|
|
- *check_uninstall
|
|
- *build_buildtype_plain
|
|
- *build_buildtype_release
|
|
- *export_logs
|
|
environment:
|
|
*build_dependencies
|
|
|
|
ubuntu_settings: &ubuntu_settings
|
|
<<: *default_settings
|
|
steps:
|
|
- run:
|
|
name: Install prerequisites
|
|
command: |
|
|
apt-get update
|
|
apt-get install -y software-properties-common
|
|
apt-get remove -y libnss-systemd
|
|
add-apt-repository universe
|
|
apt-get update
|
|
apt-get install -y git ${UBUNTU_DEP_BUILD} ${UBUNTU_DEP_TEST}
|
|
- checkout
|
|
- *start_dbus
|
|
- *build_and_test
|
|
- *install
|
|
- *check_install
|
|
- *check_uninstall
|
|
- *build_buildtype_plain
|
|
- *build_buildtype_release
|
|
- *export_logs
|
|
environment:
|
|
*build_dependencies
|
|
|
|
doc_build: &doc_build
|
|
<<: *default_settings
|
|
steps:
|
|
- *fedora_fetch_cache
|
|
- *fedora_install
|
|
- run:
|
|
name: Install documentation build-deps
|
|
command: dnf install -y ${FEDORA_DEP_DOC}
|
|
- checkout
|
|
- *build_with_docs
|
|
- *export_logs
|
|
- store_artifacts:
|
|
path: ~/libratbag/build/doc/html
|
|
- persist_to_workspace:
|
|
root: build
|
|
paths:
|
|
- doc/html/*
|
|
environment:
|
|
*build_dependencies
|
|
|
|
docs_deploy: &docs_deploy
|
|
<<: *default_settings
|
|
steps:
|
|
- *fedora_fetch_cache
|
|
- run:
|
|
name: Install prerequisites
|
|
command: dnf install -y git tree
|
|
- checkout
|
|
- attach_workspace:
|
|
at: build
|
|
- run:
|
|
name: Setup the deploy SSH key
|
|
command: |
|
|
ssh-add -L | tail -n1 > ~/.ssh/deploy.pub
|
|
cat <<EOF > ~/.ssh/config
|
|
Host github.com
|
|
IdentityFile /root/.ssh/deploy.pub
|
|
IdentitiesOnly yes
|
|
EOF
|
|
- run:
|
|
name: Clone doc repository
|
|
command: |
|
|
cd ~
|
|
git clone ssh://git@github.com/${CIRCLE_PROJECT_REPONAME}/${CIRCLE_PROJECT_REPONAME}.github.io
|
|
- run:
|
|
name: Copy the doc, commit and push
|
|
command: |
|
|
set +e
|
|
cd ~/${CIRCLE_PROJECT_REPONAME}.github.io
|
|
\cp -r ~/${CIRCLE_PROJECT_REPONAME}/build/doc/html/* .
|
|
if ! git diff-index --quiet HEAD --; then
|
|
git config --global user.email "libratbag@librabtag.github.io"
|
|
git config --global user.name "The libratbag crew"
|
|
git add .
|
|
git commit -m "update docs from ${CIRCLE_SHA1}"
|
|
git push
|
|
fi
|
|
|
|
version: 2
|
|
jobs:
|
|
fedora_cache:
|
|
<<: *fedora_prep_cache
|
|
docker:
|
|
- image: fedora:31
|
|
fedora_31:
|
|
<<: *fedora_settings
|
|
docker:
|
|
- image: fedora:31
|
|
ubuntu_19_04:
|
|
<<: *ubuntu_settings
|
|
docker:
|
|
- image: ubuntu:19.04
|
|
doc_build:
|
|
<<: *doc_build
|
|
docker:
|
|
- image: fedora:31
|
|
doc_deploy:
|
|
<<: *docs_deploy
|
|
docker:
|
|
- image: fedora:31
|
|
|
|
|
|
workflows:
|
|
version: 2
|
|
compile_and_test:
|
|
jobs:
|
|
- fedora_cache
|
|
- ubuntu_19_04
|
|
- fedora_31:
|
|
requires:
|
|
- fedora_cache
|
|
- doc_build:
|
|
requires:
|
|
- fedora_cache
|
|
- doc_deploy:
|
|
requires:
|
|
- fedora_cache
|
|
- doc_build
|
|
filters:
|
|
branches:
|
|
only: master
|