mirror of
https://github.com/keymanapp/keyman.git
synced 2026-09-26 01:27:42 +00:00
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
97 lines
4.2 KiB
Bash
Executable file
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
|