52 lines
2.0 KiB
Bash
52 lines
2.0 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
current_dir=$(dirname "$0")
|
|
cd "${current_dir}" || exit
|
|
|
|
docker_version=$(docker -v | awk '{print $3}')
|
|
required_docker_version="24.0.2"
|
|
if [ "$(printf '%s\n' "$docker_version" "$required_docker_version" | sort -V | head -n1)" = "$docker_version" ]; then
|
|
echo "Error: Docker version $docker_version is less than ${required_docker_version}"
|
|
echo "Run 'sudo apt update && sudo apt upgrade docker -y' to upgrade docker to latest version"
|
|
exit 1
|
|
fi
|
|
|
|
format_src=./
|
|
all_args=$*
|
|
|
|
proxy="http://smtcig000004.cnrd.corpintra.net:3128/"
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
--proxy=*) proxy="${1#*=}" ;;
|
|
esac
|
|
|
|
shift
|
|
done
|
|
|
|
if [ -z "${proxy+x}" ] && [ -n "$http_proxy" ]; then
|
|
proxy=${http_proxy}
|
|
fi
|
|
|
|
docker_build_http_proxy=
|
|
docker_run_http_proxy=
|
|
if [ -n "$proxy" ]; then
|
|
docker_build_http_proxy="--build-arg HTTP_PROXY=${proxy} --build-arg HTTPS_PROXY=${proxy} --build-arg http_proxy=${proxy} --build-arg https_proxy=${proxy}"
|
|
docker_run_http_proxy="--env HTTP_PROXY=${proxy} --env HTTPS_PROXY=${proxy} --env http_proxy=${proxy} --env https_proxy=${proxy}"
|
|
fi
|
|
|
|
IMAGE_WITH_TAG=$(python3 -c 'import yaml; print(yaml.safe_load(open("./infra/tencent/docker_ci/docker-compose.yaml"))["services"]["python-format"]["image"])')
|
|
|
|
if ! docker images --format "{{.Repository}}:{{.Tag}}" | grep -q "$IMAGE_WITH_TAG"; then
|
|
echo "Image $IMAGE_WITH_TAG does not exist. Building the image..."
|
|
cmd="docker compose -f ./infra/tencent/docker_ci/docker-compose.yaml build ${docker_build_http_proxy} python-format"
|
|
echo "${cmd}"
|
|
eval "${cmd}"
|
|
fi
|
|
|
|
cmd="docker compose -f ./infra/tencent/docker_ci/docker-compose.yaml run ${docker_run_http_proxy} -u"$(id -u):$(id -g)" --rm --entrypoint=./infra/tencent/docker_ci/entrypoint_python_format.sh python-format --format-all --no-lint"
|
|
cmd="docker compose -f ./infra/tencent/docker_ci/docker-compose.yaml run ${docker_run_http_proxy} -u"$(id -u):$(id -g)" --rm --entrypoint=./infra/tencent/docker_ci/entrypoint_python_format.sh python-format --check --no-lint"
|
|
echo "${cmd}"
|
|
eval "${cmd}"
|