1
0
Fork 0
mirror of https://github.com/yshui/picom.git synced 2025-02-17 15:56:21 -05:00
picom/.circleci/config.yml

155 lines
3.7 KiB
YAML
Raw Normal View History

executors:
e:
docker:
- image: yshui/comptonci
working_directory: "/tmp/workspace"
environment:
UBSAN_OPTIONS: "halt_on_error=1"
version: 2.1
commands:
build:
parameters:
build-config:
type: string
default: ""
cc:
type: string
default: cc
steps:
- restore_cache:
keys:
- source-v1-{{ .Branch }}-{{ .Revision }}
- source-v1-{{ .Branch }}-
- source-v1-
- checkout
- save_cache:
key: source-v1-{{ .Branch }}-{{ .Revision }}
paths:
- ".git"
- run:
name: config
2024-02-14 00:19:29 +03:00
command: CC=<< parameters.cc >> meson setup << parameters.build-config >> -Dunittest=true --werror . build
- run:
name: build
command: ninja -vC build
jobs:
basic:
executor: e
steps:
- build:
build-config: -Dwith_docs=true -Db_coverage=true
- persist_to_workspace:
root: .
paths:
- .
test:
executor: e
steps:
- attach_workspace:
at: /tmp/workspace
- run:
name: Tests
command: |
ulimit -c unlimited
printf "\n::: Unit tests :::\n"
ninja -vC build test
printf "\n::: test config file parsing :::\n"
xvfb-run -a -s "-screen 0 640x480x24" build/src/picom --config tests/configs/parsing_test.conf --no-vsync --diagnostics
printf "\n::: test config file parsing in a different locale :::\n"
LC_NUMERIC=de_DE.UTF-8 xvfb-run -a -s "-screen 0 640x480x24" build/src/picom --config tests/configs/parsing_test.conf --no-vsync --diagnostics
printf "\n::: run testsuite :::\n"
tests/run_tests.sh build/src/picom
- run:
name: generate coverage reports
command: cd build; find -name '*.gcno' -exec gcov -pb {} +
- run:
name: download codecov scripts
command: curl -s https://codecov.io/bash > codecov.sh
- run:
name: upload coverage reports
command: bash ./codecov.sh -X gcov
- run:
name: collect coredumps
when: on_fail
command: |
. $HOME/.cargo/env
mkdir /tmp/artifacts
for c in tests/core.*; do
coredump-copy $c /tmp/coredumps/`basename $c`
done
tar Jcf /tmp/artifacts/coredumps.tar.xz /tmp/coredumps
- store_artifacts:
path: /tmp/artifacts
minimal:
executor: e
steps:
- build:
build-config: -Dopengl=false -Ddbus=false -Dregex=false
release:
executor: e
steps:
- build:
build-config: --buildtype=release
release-clang:
executor: e
steps:
- build:
cc: clang
build-config: --buildtype=release
nogl:
executor: e
steps:
- build:
build-config: -Dopengl=false
noregex:
executor: e
steps:
- build:
build-config: -Dregex=false
clang_basic:
executor: e
steps:
- build:
cc: clang
clang_minimal:
executor: e
steps:
- build:
cc: clang
build-config: -Dopengl=false -Ddbus=false -Dregex=false
clang_nogl:
executor: e
steps:
- build:
cc: clang
build-config: -Dopengl=false
clang_noregex:
executor: e
steps:
- build:
cc: clang
build-config: -Dregex=false
workflows:
all_builds:
jobs:
- basic
- clang_basic
- minimal
- clang_minimal
- nogl
- clang_nogl
- release
- release-clang
- test:
requires:
- basic
# vim: set sw=2 ts=8 et: