feat: add PostgreSQL web installation wizard
Signed Release / release (push) Failing after 5m1s

This commit is contained in:
Qiufeng
2026-08-04 07:42:20 +08:00
parent b714f9851e
commit 1affcd9a5e
61 changed files with 1992 additions and 431 deletions
+19 -5
View File
@@ -39,11 +39,13 @@ fi
(
cd "$BACKEND_DIR"
./gradlew clean bootJar -PreleaseVersion="$VERSION" -PproductionBuild=true
./gradlew clean bootJar installerBootJar -PreleaseVersion="$VERSION" -PproductionBuild=true
)
JAR="$BACKEND_DIR/build/libs/oa-backend-${VERSION}.jar"
INSTALLER_JAR="$BACKEND_DIR/build/libs/kaidi-erp-installer-${VERSION}.jar"
[[ -r "$JAR" ]] || { printf 'bootJar not found: %s\n' "$JAR" >&2; exit 1; }
[[ -r "$INSTALLER_JAR" ]] || { printf 'installerBootJar not found: %s\n' "$INSTALLER_JAR" >&2; exit 1; }
JAR_ENTRIES="$(jar tf "$JAR")"
grep -Eq '^BOOT-INF/lib/postgresql-[^/]+\.jar$' <<< "$JAR_ENTRIES" \
|| { printf 'production JAR is missing the PostgreSQL driver\n' >&2; exit 1; }
@@ -51,6 +53,15 @@ if grep -Eq '^BOOT-INF/lib/(sqlite-jdbc|hibernate-community-dialects)-[^/]+\.jar
printf 'production JAR must not contain SQLite runtime libraries\n' >&2
exit 1
fi
INSTALLER_ENTRIES="$(jar tf "$INSTALLER_JAR")"
grep -Eq '^BOOT-INF/lib/postgresql-[^/]+\.jar$' <<< "$INSTALLER_ENTRIES" \
|| { printf 'installer JAR is missing the PostgreSQL driver\n' >&2; exit 1; }
grep -q '^BOOT-INF/classes/static/index.html$' <<< "$INSTALLER_ENTRIES" \
|| { printf 'installer JAR is missing the web setup page\n' >&2; exit 1; }
if grep -Eq '^BOOT-INF/lib/(sqlite-jdbc|hibernate-community-dialects)-[^/]+\.jar$' <<< "$INSTALLER_ENTRIES"; then
printf 'installer JAR must not contain SQLite runtime libraries\n' >&2
exit 1
fi
mkdir -p "$DIST_DIR"
STAGE="$(mktemp -d "${TMPDIR:-/tmp}/kaidi-erp-package.XXXXXX")"
@@ -68,12 +79,14 @@ printf '{"version":"%s","database":"postgresql","minimumPostgres":15,"rollbackCo
"$VERSION" > "$PACKAGE_ROOT/manifest.json"
ARCHIVE="kaidi-erp-${VERSION}.tar.gz"
INSTALLER_ASSET="kaidi-erp-installer-${VERSION}.jar"
tar -czf "$DIST_DIR/$ARCHIVE" -C "$STAGE" "kaidi-erp-${VERSION}"
cp "$INSTALLER_JAR" "$DIST_DIR/$INSTALLER_ASSET"
if command -v sha256sum >/dev/null 2>&1; then
(cd "$DIST_DIR" && sha256sum "$ARCHIVE" > SHA256SUMS)
(cd "$DIST_DIR" && sha256sum "$ARCHIVE" "$INSTALLER_ASSET" > SHA256SUMS)
else
(cd "$DIST_DIR" && shasum -a 256 "$ARCHIVE" > SHA256SUMS)
(cd "$DIST_DIR" && shasum -a 256 "$ARCHIVE" "$INSTALLER_ASSET" > SHA256SUMS)
fi
if [[ -n "$PRIVATE_KEY" && -r "$PRIVATE_KEY" ]]; then
@@ -90,5 +103,6 @@ else
: > "$DIST_DIR/SHA256SUMS.sig"
fi
printf 'release assets:\n %s\n %s\n %s\n' \
"$DIST_DIR/$ARCHIVE" "$DIST_DIR/SHA256SUMS" "$DIST_DIR/SHA256SUMS.sig"
printf 'release assets:\n %s\n %s\n %s\n %s\n' \
"$DIST_DIR/$ARCHIVE" "$DIST_DIR/$INSTALLER_ASSET" \
"$DIST_DIR/SHA256SUMS" "$DIST_DIR/SHA256SUMS.sig"