You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

40 line
1.5 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. BUILD_TIME="${BUILD_TIME:-$(date '+%Y%m%d%H%M%S')}"
  9. PACKAGE_NAME="${PACKAGE_NAME:-emp-shunfeng-runtime-bootstrap-$BUILD_TIME}"
  10. PACKAGE_DIR="$DIST_DIR/$PACKAGE_NAME"
  11. PACKAGE_ARCHIVE="$DIST_DIR/$PACKAGE_NAME.tar.gz"
  12. die() {
  13. echo "ERROR: $*" >&2
  14. exit 1
  15. }
  16. [[ -n "$EMP_ROOT" ]] || die "set EMP_ROOT to the directory containing emp_server"
  17. [[ -f "$EMP_ROOT/emp_server/.env.example" ]] || die "missing $EMP_ROOT/emp_server/.env.example"
  18. [[ ! -e "$PACKAGE_DIR" && ! -e "$PACKAGE_ARCHIVE" ]] || die "package output already exists: $PACKAGE_NAME"
  19. mkdir -p "$PACKAGE_DIR"
  20. cp "$SCRIPT_DIR/docker-compose.yml" "$PACKAGE_DIR/docker-compose.yml"
  21. cp "$SCRIPT_DIR/release.env.example" "$PACKAGE_DIR/release.env.example"
  22. cp "$SCRIPT_DIR/install-runtime.sh" "$PACKAGE_DIR/install-runtime.sh"
  23. cp "$SCRIPT_DIR/README.md" "$PACKAGE_DIR/README.md"
  24. cp "$ISOLATED_DIR/deploy-from-url.sh" "$PACKAGE_DIR/deploy-from-url.sh"
  25. cp "$EMP_ROOT/emp_server/.env.example" "$PACKAGE_DIR/.env.example"
  26. chmod +x "$PACKAGE_DIR/install-runtime.sh" "$PACKAGE_DIR/deploy-from-url.sh"
  27. mkdir -p "$DIST_DIR"
  28. tar -czf "$PACKAGE_ARCHIVE" -C "$DIST_DIR" "$PACKAGE_NAME"
  29. echo "Runtime bootstrap package: $PACKAGE_ARCHIVE"
  30. if command -v sha256sum >/dev/null 2>&1; then
  31. sha256sum "$PACKAGE_ARCHIVE"
  32. fi