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 command: CC=<< parameters.cc >> meson << parameters.build-config >> -Dunittest=true --werror . build - run: name: build command: ninja -vC build jobs: basic: executor: e steps: - build: build-config: -Dbuild_docs=true -Db_coverage=true - persist_to_workspace: root: . paths: - . test: executor: e steps: - attach_workspace: at: /tmp/workspace - run: name: unit test command: ninja -vC build test - run: name: test config file parsing command: xvfb-run -s "-screen 0 640x480x24" build/src/compton --config compton.sample.conf --vsync=none --diagnostics - run: name: run testsuite command: tests/run_tests.sh build/src/compton - 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 minimal: executor: e steps: - build: build-config: -Dopengl=false -Ddbus=false -Dregex=false -Dconfig_file=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 -Dconfig_file=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 - test: requires: - basic # vim: set sw=2 ts=8 et: