mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-05 00:15:32 +00:00
92 lines
3.8 KiB
Bash
Executable file
92 lines
3.8 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]}")"
|
|
# shellcheck source=resources/build/builder-full.inc.sh
|
|
. "${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)" \
|
|
|
|
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() {
|
|
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}"
|
|
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 \
|
|
-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
|