25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

48 lines
1.8 KiB

  1. #!/usr/bin/env bash
  2. set -Eeuo pipefail
  3. # 在我方受控构建机生成一次性的 shunfeng runtime 引导包,不包含业务镜像和源码。
  4. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  5. ISOLATED_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
  6. EMP_ROOT="${EMP_ROOT:-}"
  7. DIST_DIR="${DIST_DIR:-$ISOLATED_DIR/dist}"
  8. COS_UPLOAD="${COS_UPLOAD:-0}"
  9. BUILD_TIME="${BUILD_TIME:-$(date '+%Y%m%d%H%M%S')}"
  10. PACKAGE_NAME="${PACKAGE_NAME:-emp-shunfeng-runtime-bootstrap-$BUILD_TIME}"
  11. PACKAGE_DIR="$DIST_DIR/$PACKAGE_NAME"
  12. PACKAGE_ARCHIVE="$DIST_DIR/$PACKAGE_NAME.tar.gz"
  13. die() {
  14. echo "ERROR: $*" >&2
  15. exit 1
  16. }
  17. [[ -n "$EMP_ROOT" ]] || die "set EMP_ROOT to the directory containing emp_server"
  18. [[ -f "$EMP_ROOT/emp_server/.env.example" ]] || die "missing $EMP_ROOT/emp_server/.env.example"
  19. [[ ! -e "$PACKAGE_DIR" && ! -e "$PACKAGE_ARCHIVE" ]] || die "package output already exists: $PACKAGE_NAME"
  20. mkdir -p "$PACKAGE_DIR"
  21. cp "$SCRIPT_DIR/docker-compose.yml" "$PACKAGE_DIR/docker-compose.yml"
  22. cp "$SCRIPT_DIR/release.env.example" "$PACKAGE_DIR/release.env.example"
  23. cp "$SCRIPT_DIR/install-runtime.sh" "$PACKAGE_DIR/install-runtime.sh"
  24. cp "$SCRIPT_DIR/README.md" "$PACKAGE_DIR/README.md"
  25. cp "$ISOLATED_DIR/deploy-from-url.sh" "$PACKAGE_DIR/deploy-from-url.sh"
  26. cp "$EMP_ROOT/emp_server/.env.example" "$PACKAGE_DIR/.env.example"
  27. chmod +x "$PACKAGE_DIR/install-runtime.sh" "$PACKAGE_DIR/deploy-from-url.sh"
  28. mkdir -p "$DIST_DIR"
  29. tar -czf "$PACKAGE_ARCHIVE" -C "$DIST_DIR" "$PACKAGE_NAME"
  30. echo "Runtime bootstrap package: $PACKAGE_ARCHIVE"
  31. if command -v sha256sum >/dev/null 2>&1; then
  32. sha256sum "$PACKAGE_ARCHIVE"
  33. fi
  34. if [[ "$COS_UPLOAD" == "1" ]]; then
  35. DEPLOY_ENV=emp-shunfeng \
  36. PACKAGE_KIND=bootstrap \
  37. TARGET_DEPLOY_HOME=/home/emp-shunfeng \
  38. bash "$ISOLATED_DIR/publish-cos.sh" "$PACKAGE_ARCHIVE"
  39. fi