spiegel-keyman/linux/build.sh
Eberhard Beilharz 2c8f878f1d
chore(linux): add verification for source tarball and source package
This change adds a new GitHub action that verifies that Keyman can build
from the source package. Also check that source package used for Launchpad
and Debian/Ubuntu packaging doesn't produce lintian errors. Previously
lintian errors did go unnoticed because they didn't stop the build.

Also refactor `launchpad.sh` script to be a proper builder script, and add
some new parameters to allow skipping some steps in the script.

Build-bot: skip
Test-bot: skip
2026-05-06 19:03:12 +02:00

50 lines
1.7 KiB
Bash
Executable file

#!/usr/bin/env bash
## START STANDARD BUILD SCRIPT INCLUDE
# adjust relative paths as necessary
THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
. "${THIS_SCRIPT%/*}/../resources/build/builder-full.inc.sh"
## END STANDARD BUILD SCRIPT INCLUDE
. "$KEYMAN_ROOT/resources/build/utils.inc.sh"
################################ Main script ################################
builder_describe \
"Build Keyman for Linux." \
"@/resources/tools/check-markdown test:help" \
":config=keyman-config keyman-config" \
":engine=ibus-keyman ibus-keyman" \
":help Online documentation" \
":service=keyman-system-service keyman-system-service" \
":mcompile=mcompile/keymap mnemonic layout recompiler for Linux" \
"clean" \
"configure" \
"build" \
"test" \
"install install artifacts" \
"uninstall uninstall artifacts" \
"--no-integration+ don't run integration tests" \
"--coverage+ capture test coverage" \
"--report+ create coverage report" \
"--open open the coverage reports in the browser" \
"--no-werror+ don't report warnings as errors"
builder_parse "$@"
builder_run_child_actions clean configure build test install uninstall
clean_action() {
rm -rf debian/patches
}
test_action() {
if builder_has_option --open; then
builder_echo "Opening coverage reports in browser..."
xdg-open "file://${THIS_SCRIPT_PATH}/CodeCoverageReports.html"
fi
}
builder_run_action clean clean_action
builder_run_action test test_action
builder_run_action test:help check-markdown "${KEYMAN_ROOT}/linux/docs/help"