|
|
@@ -7,7 +7,7 @@ set -Eeuo pipefail |
|
|
# |
|
|
# |
|
|
# Optional: |
|
|
# Optional: |
|
|
# DEPLOY_ENV=emp-uat |
|
|
# DEPLOY_ENV=emp-uat |
|
|
# PACKAGE_KIND=runtime|update |
|
|
|
|
|
|
|
|
# PACKAGE_KIND=runtime|update|bootstrap |
|
|
# COS_PREFIX=deploy/emp-uat/update/20260611120000 |
|
|
# COS_PREFIX=deploy/emp-uat/update/20260611120000 |
|
|
# COS_KEY=deploy/emp-uat/update/package.tar.gz |
|
|
# COS_KEY=deploy/emp-uat/update/package.tar.gz |
|
|
# COS_SIGN_EXPIRE=604800 |
|
|
# COS_SIGN_EXPIRE=604800 |
|
|
@@ -79,6 +79,49 @@ print_target_deploy_command() { |
|
|
target_deploy_home="${TARGET_DEPLOY_HOME:-$TARGET_BASE_DIR/$DEPLOY_ENV}" |
|
|
target_deploy_home="${TARGET_DEPLOY_HOME:-$TARGET_BASE_DIR/$DEPLOY_ENV}" |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
if [[ "$PACKAGE_KIND" == "bootstrap" ]]; then |
|
|
|
|
|
cat <<EOF |
|
|
|
|
|
|
|
|
|
|
|
Target bootstrap command (run once on both shunfeng servers): |
|
|
|
|
|
set -Eeuo pipefail |
|
|
|
|
|
BOOTSTRAP_URL='$SIGNED_URL' |
|
|
|
|
|
BOOTSTRAP_SHA256='$SHA256' |
|
|
|
|
|
BOOTSTRAP_DIR="\$(mktemp -d /tmp/emp-shunfeng-bootstrap.XXXXXX)" |
|
|
|
|
|
BOOTSTRAP_FILE="\$BOOTSTRAP_DIR/package.tar.gz" |
|
|
|
|
|
|
|
|
|
|
|
if command -v curl >/dev/null 2>&1; then |
|
|
|
|
|
curl -fL --retry 3 --connect-timeout 20 -o "\$BOOTSTRAP_FILE" "\$BOOTSTRAP_URL" |
|
|
|
|
|
elif command -v wget >/dev/null 2>&1; then |
|
|
|
|
|
wget -O "\$BOOTSTRAP_FILE" "\$BOOTSTRAP_URL" |
|
|
|
|
|
else |
|
|
|
|
|
echo "ERROR: missing curl or wget" >&2 |
|
|
|
|
|
exit 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
if command -v sha256sum >/dev/null 2>&1; then |
|
|
|
|
|
echo "\$BOOTSTRAP_SHA256 \$BOOTSTRAP_FILE" | sha256sum -c - |
|
|
|
|
|
elif command -v shasum >/dev/null 2>&1; then |
|
|
|
|
|
test "\$(shasum -a 256 "\$BOOTSTRAP_FILE" | awk '{print \$1}')" = "\$BOOTSTRAP_SHA256" |
|
|
|
|
|
else |
|
|
|
|
|
echo "ERROR: missing sha256sum or shasum" >&2 |
|
|
|
|
|
exit 1 |
|
|
|
|
|
fi |
|
|
|
|
|
tar -xzf "\$BOOTSTRAP_FILE" -C "\$BOOTSTRAP_DIR" --strip-components=1 |
|
|
|
|
|
|
|
|
|
|
|
OLD_EMP_DIR="\$(docker inspect emp-gateway --format '{{ index .Config.Labels "com.docker.compose.project.working_dir" }}')" |
|
|
|
|
|
test -n "\$OLD_EMP_DIR" && test -f "\$OLD_EMP_DIR/.env" || { |
|
|
|
|
|
echo "ERROR: existing emp_server/.env not found" >&2 |
|
|
|
|
|
exit 1 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
DEPLOY_HOME=$target_deploy_home \\ |
|
|
|
|
|
EXISTING_ENV_FILE="\$OLD_EMP_DIR/.env" \\ |
|
|
|
|
|
bash "\$BOOTSTRAP_DIR/install-runtime.sh" |
|
|
|
|
|
|
|
|
|
|
|
EOF |
|
|
|
|
|
return |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
if [[ "$PACKAGE_KIND" == "update" ]]; then |
|
|
if [[ "$PACKAGE_KIND" == "update" ]]; then |
|
|
target_script_dir="${TARGET_SCRIPT_DIR:-$target_deploy_home/runtime}" |
|
|
target_script_dir="${TARGET_SCRIPT_DIR:-$target_deploy_home/runtime}" |
|
|
else |
|
|
else |
|
|
|