@@ -68,10 +68,12 @@ jobs:
6868 LAST_NIGHTLY_SHA=""
6969 RELEASE_JSON=$(gh release view nightly --repo "$GITHUB_REPOSITORY" --json body 2>/dev/null || true)
7070 if [ -n "$RELEASE_JSON" ]; then
71- LAST_NIGHTLY_SHA=$(echo "$RELEASE_JSON" | jq -r '.body' | grep -oP 'Source commit: \ K[0-9a-f]+' || true)
71+ LAST_NIGHTLY_SHA=$(echo "$RELEASE_JSON" | jq -r '.body' | grep -oP 'Source commit\s*[:|]\s*\ K[0-9a-f]{7,40}' | head -1 || true)
7272 fi
73+ echo "Last nightly SHA: ${LAST_NIGHTLY_SHA:-<none>}"
74+ echo "Current source SHA: $SOURCE_SHA"
7375
74- if [ "$SOURCE_SHA" = "$LAST_NIGHTLY_SHA" ]; then
76+ if [ -n "$LAST_NIGHTLY_SHA" ] && [ "$SOURCE_SHA" = "$LAST_NIGHTLY_SHA" ]; then
7577 echo "No new commits since last nightly build, skipping."
7678 echo "should_build=false" >> "$GITHUB_OUTPUT"
7779 else
@@ -149,8 +151,10 @@ jobs:
149151 local url="https://x-access-token:${DEPENDENCY_REPO_TOKEN}@github.com/${repository}.git"
150152
151153 echo "Cloning ${repository} @ ${ref}"
152- git clone --depth 1 "$url" "$directory"
153- git -C "$directory" checkout "$ref"
154+ git init "$directory"
155+ git -C "$directory" remote add origin "$url"
156+ git -C "$directory" fetch --depth 1 origin "$ref"
157+ git -C "$directory" checkout FETCH_HEAD
154158 echo "Resolved $(git -C "$directory" rev-parse HEAD) for ${repository}"
155159 }
156160
@@ -274,6 +278,16 @@ jobs:
274278 echo "Warning: cli-chains jar not found, skipping"
275279 fi
276280
281+ SDK_JAR=$(find source/chains-sdk/target -maxdepth 1 -type f -name "chains-sdk-*.jar" \
282+ ! -name "*-sources.jar" ! -name "*-javadoc.jar" ! -name "*.original" | sort | head -n 1)
283+ if [ -f "$SDK_JAR" ]; then
284+ echo "Found SDK Jar: $(basename "$SDK_JAR")"
285+ cp "$SDK_JAR" release_base/java-chains-sdk.jar
286+ else
287+ echo "Error: chains-sdk jar not found"
288+ exit 1
289+ fi
290+
277291 cp -r release-deps/chains-config release_base/chains-config
278292 rm -rf release_base/chains-config/.git
279293
@@ -345,6 +359,11 @@ jobs:
345359 # MCP 全平台包
346360 tar -czf "java-chains-mcp-${NIGHTLY_VERSION}-binaries.tar.gz" -C base mcp-binaries
347361
362+ # SDK jar (单独发布)
363+ if [ -f base/java-chains-sdk.jar ]; then
364+ cp base/java-chains-sdk.jar "java-chains-sdk-${NIGHTLY_VERSION}.jar"
365+ fi
366+
348367 # CLI 包 (如果存在)
349368 if [ -f base/cli-chains.jar ]; then
350369 mkdir -p cli_dist
@@ -382,11 +401,12 @@ jobs:
382401 - \`java-chains-${NIGHTLY_VERSION}.tar.gz\` — Server + Config
383402 - \`java-chains-mcp-${NIGHTLY_VERSION}-binaries.tar.gz\` — MCP Binaries (all platforms)
384403 - \`cli-chains-${NIGHTLY_VERSION}.tar.gz\` — CLI Tool
404+ - \`java-chains-sdk-${NIGHTLY_VERSION}.jar\` — SDK Library
385405 EOF
386406 )
387407
388408 ASSETS=()
389- for f in *.tar.gz; do
409+ for f in *.tar.gz java-chains-sdk-*.jar ; do
390410 [ -f "$f" ] && ASSETS+=("$f")
391411 done
392412
@@ -418,6 +438,7 @@ jobs:
418438 - name : Prepare Docker Context (no source code)
419439 run : |
420440 rm -f docker-context/cli-chains.jar
441+ rm -f docker-context/java-chains-sdk.jar
421442
422443 # 只保留 Dockerfile 需要的文件
423444 cp Dockerfile docker-context/
0 commit comments