ci(lesavka): run GTK tests under headless display

This commit is contained in:
Brad Stein 2026-05-19 20:00:10 -03:00
parent a5d7b1feda
commit e55243f42b
2 changed files with 16 additions and 4 deletions

11
Jenkinsfile vendored
View File

@ -90,6 +90,9 @@ spec:
DOCKER_BUILDKIT = '1' DOCKER_BUILDKIT = '1'
LESAVKA_CI_PROFILE = "${params.LESAVKA_CI_PROFILE}" LESAVKA_CI_PROFILE = "${params.LESAVKA_CI_PROFILE}"
LESAVKA_COVERAGE_ENFORCE = "${params.ENFORCE_COVERAGE_GATE}" LESAVKA_COVERAGE_ENFORCE = "${params.ENFORCE_COVERAGE_GATE}"
LESAVKA_CI_HEADLESS_GTK = '1'
GDK_BACKEND = 'x11'
NO_AT_BRIDGE = '1'
QUALITY_GATE_PUSHGATEWAY_URL = "${params.QUALITY_GATE_PUSHGATEWAY_URL}" QUALITY_GATE_PUSHGATEWAY_URL = "${params.QUALITY_GATE_PUSHGATEWAY_URL}"
} }
@ -101,14 +104,16 @@ spec:
} }
stage('Bootstrap CI Toolchain') { stage('Bootstrap CI Toolchain') {
when {
expression { return params.LESAVKA_CI_PROFILE != 'safe' }
}
steps { steps {
container('rust-ci') { container('rust-ci') {
sh ''' sh '''
set -eu set -eu
git config --global --add safe.directory "$WORKSPACE" git config --global --add safe.directory "$WORKSPACE"
if [ -z "${DISPLAY:-}" ] && ! command -v xvfb-run >/dev/null 2>&1; then
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends xvfb xauth dbus-x11
rm -rf /var/lib/apt/lists/*
fi
''' '''
} }
} }

View File

@ -27,7 +27,14 @@ build_url=${BUILD_URL:-}
start_seconds=$(date +%s) start_seconds=$(date +%s)
status=0 status=0
set +e set +e
RUST_TEST_THREADS="${RUST_TEST_THREADS:-1}" cargo test --workspace --all-targets --no-fail-fast --color never 2>&1 | tee "${TEST_LOG}" cargo_test_cmd=(cargo test --workspace --all-targets --no-fail-fast --color never)
if [[ -z "${DISPLAY:-}" && "${LESAVKA_CI_HEADLESS_GTK:-1}" != "0" ]] && command -v xvfb-run >/dev/null 2>&1; then
cargo_test_cmd=(xvfb-run -a -s "-screen 0 1920x1080x24" "${cargo_test_cmd[@]}")
fi
if command -v dbus-run-session >/dev/null 2>&1; then
cargo_test_cmd=(dbus-run-session -- "${cargo_test_cmd[@]}")
fi
RUST_TEST_THREADS="${RUST_TEST_THREADS:-1}" "${cargo_test_cmd[@]}" 2>&1 | tee "${TEST_LOG}"
status=${PIPESTATUS[0]} status=${PIPESTATUS[0]}
set -e set -e
end_seconds=$(date +%s) end_seconds=$(date +%s)