spiegel-keyman/resources/docker-images/run.sh
Eberhard Beilharz 23764b7e56
chore(android): allow to build FV app in docker container
Building the FirstVoices app is triggered in the top-level `build.sh`
if the two environment variables are set. Previously we didn't pass
these variables to Docker, so the FV app was never built even when the
env variables were set. This change passes the two variables to the
container, thus allowing to build the FW app in the docker container.

Build-bot: skip
Test-bot: skip
2026-06-30 11:51:03 +02:00

97 lines
4.2 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
# shellcheck disable=SC2154
. "${KEYMAN_ROOT}/resources/build/minimum-versions.inc.sh"
. "${KEYMAN_ROOT}/resources/docker-images/docker-build.inc.sh"
. "${KEYMAN_ROOT}/resources/build/utils.inc.sh"
################################ Main script ################################
builder_describe \
"Run build.sh script inside of a docker image. Pass the build script and parameters after --." \
":android" \
":core" \
":developer" \
":linux" \
":web" \
"run+ Run command in docker image" \
"--distro=DISTRO The distribution (debian or ubuntu, default: ubuntu)" \
"--distro-version=DISTRO_VERSION The Ubuntu/Debian version (default: ${KEYMAN_DEFAULT_VERSION_UBUNTU_CONTAINER})" \
"--registry=REGISTRY The container registry to keep the images (default: ghcr.io/keymanapp)" \
"--username=REGISTRY_USERNAME The user for the container registry (default: keymanapp)" \
"--password=REGISTRY_PASSWORD The password for the container registry user (default: password)" \
"--remote-debug Expose the container's port 2345 for remote debugging"
builder_parse "$@"
check_for_default_values
convert_parameters_to_args
setup_docker
setup_container_registry
if is_default_values; then
image_version=default
build_dir=default
else
image_version=${build_version:-}
build_dir="${DISTRO:-}-${DISTRO_VERSION:-}"
fi
run_android() {
if [[ -n ${RELEASE_OEM:-} ]] && [[ -n ${RELEASE_OEM_FIRSTVOICES:-} ]]; then
DOCKER_RUN_ARGS+=(-e "RELEASE_OEM=${RELEASE_OEM:-}" -e "RELEASE_OEM_FIRSTVOICES=${RELEASE_OEM_FIRSTVOICES:-}")
fi
docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -i --rm -v "${KEYMAN_ROOT}":/home/build/build \
-v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \
"${registry_slash}keymanapp/keyman-android-ci:${image_version}" \
"${builder_extra_params[@]}"
}
run_core() {
docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -i --rm -v "${KEYMAN_ROOT}":/home/build/build \
-v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \
"${registry_slash}keymanapp/keyman-core-ci:${image_version}" \
"${builder_extra_params[@]}"
}
run_developer() {
docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -i --rm -v "${KEYMAN_ROOT}":/home/build/build \
-v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \
"${registry_slash}keymanapp/keyman-developer-ci:${image_version}" \
"${builder_extra_params[@]}"
}
run_linux() {
mkdir -p "${KEYMAN_ROOT}/linux/build/docker-linux/${build_dir}"
mkdir -p "${KEYMAN_ROOT}/linux/keyman-system-service/build/docker-linux/${build_dir}"
mkdir -p "${KEYMAN_ROOT}/linux/mcompile/keymap/build/docker-linux/${build_dir}"
docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -i --privileged --rm -v "${KEYMAN_ROOT}":/home/build/build \
-v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \
-v "${KEYMAN_ROOT}/linux/build/docker-linux/${build_dir}":/home/build/build/linux/build \
-v "${KEYMAN_ROOT}/linux/keyman-system-service/build/docker-linux/${build_dir}":/home/build/build/linux/keyman-system-service/build \
-v "${KEYMAN_ROOT}/linux/mcompile/keymap/build/docker-linux/${build_dir}":/home/build/build/linux/mcompile/keymap/build \
-e DESTDIR=/tmp \
"${registry_slash}keymanapp/keyman-linux-ci:${image_version}" \
"${builder_extra_params[@]}"
}
run_web() {
docker_wrapper run "${DOCKER_RUN_ARGS[@]}" -i --privileged --rm -v "${KEYMAN_ROOT}":/home/build/build \
-v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \
"${registry_slash}keymanapp/keyman-web-ci:${image_version}" \
"${builder_extra_params[@]}"
}
mkdir -p "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}"
builder_run_action run:android run_android
builder_run_action run:core run_core
builder_run_action run:developer run_developer
builder_run_action run:linux run_linux
builder_run_action run:web run_web