Skip to content

Support for not compositing until at least one renderable has been sent to the compositor #729

Support for not compositing until at least one renderable has been sent to the compositor

Support for not compositing until at least one renderable has been sent to the compositor #729

Workflow file for this run

name: Coverage
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
concurrency:
group: ${{ github.workflow }}-${{ github.event.number && format('pr{0}', github.event.number) || github.ref_name }}
cancel-in-progress: true
jobs:
Run:
runs-on: ubuntu-latest
env:
CCACHE_DIR: "/tmp/ccache"
timeout-minutes: 60
steps:
- name: Check out code
uses: actions/checkout@v3
with:
# So we can determine the merge base
fetch-depth: 0
- name: Set up CCache
id: setup-ccache
run: |
sudo apt-get install ccache
mkdir --parents ${CCACHE_DIR}
# Find the merge base to avoid populating the cache with short lived cache entries
# and evicting those we care for - from `main`
echo "merge-base=$( git merge-base origin/main ${{ github.sha }} )" >> $GITHUB_OUTPUT
- name: CCache
uses: actions/cache@v3
with:
key: ccache-coverage-${{ steps.setup-ccache.outputs.merge-base }}
# if exact match isn't found, use the most recent entry for the task
restore-keys: |
ccache-coverage-
path: ${{ env.CCACHE_DIR }}
- name: Ensure ccache size
run: |
# a full build yielded 180M cache
echo "max_size = 250" > ${CCACHE_DIR}/ccache.conf
- name: Install dependencies
run: |
sudo apt-add-repository --yes ppa:mir-team/dev
sudo apt-get install --no-install-recommends \
dmz-cursor-theme \
glmark2-es2 \
glmark2-es2-wayland \
lcov \
mesa-utils \
ninja-build \
xwayland
# deal with incompataibles preinstalled
sudo apt-get remove --yes \
libunwind-14-dev \
libunwind-dev \
libunwind-14
sudo apt-get build-dep ./
- name: Configure
run: >
cmake
-DCMAKE_BUILD_TYPE=Coverage
-DMIR_RUN_PERFORMANCE_TESTS=ON
-DCMAKE_C_COMPILER_LAUNCHER=ccache
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-GNinja
-B build
${{ github.workspace }}
- name: Build
run: cmake --build build
- name: Clear CCache stats
run: ccache --show-stats --zero-stats
- name: Test
timeout-minutes: 10
env:
CTEST_OUTPUT_ON_FAILURE: 1
XDG_RUNTIME_DIR: /tmp
run: cmake --build build --target test
- name: Measure coverage
timeout-minutes: 10
run: cmake --build build --target coverage
- name: Send coverage report
uses: codecov/codecov-action@v3
with:
directory: build
fail_ci_if_error: true
verbose: true
- if: ${{ failure() && runner.debug }}
name: Setup upterm session
uses: lhotari/action-upterm@v1
with:
limit-access-to-actor: true