Skip to content

Commit c3c0985

Browse files
Ar3hclaude
andcommitted
ci: skip nightly when no new commits and publish SDK jar
- Fix nightly change detection regex to match the markdown table format - Build and publish java-chains-sdk-<version>.jar in nightly and release Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 4881c19 commit c3c0985

2 files changed

Lines changed: 41 additions & 6 deletions

File tree

.github/workflows/build-and-release.yml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,17 @@ jobs:
312312
exit 1
313313
fi
314314
315+
# 2.5 复制 SDK jar
316+
SDK_JAR=$(find chains-sdk/target -maxdepth 1 -type f -name "chains-sdk-*.jar" \
317+
! -name "*-sources.jar" ! -name "*-javadoc.jar" ! -name "*.original" | sort | head -n 1)
318+
if [ -f "$SDK_JAR" ]; then
319+
echo "Found SDK Jar: $(basename "$SDK_JAR")"
320+
cp "$SDK_JAR" release_base/java-chains-sdk.jar
321+
else
322+
echo "Error: chains-sdk jar not found"
323+
exit 1
324+
fi
325+
315326
# 3. 复制配置,并覆盖 v2.0 新增的 MCP 配置目录
316327
cp -r release-deps/chains-config release_base/chains-config
317328
rm -rf release_base/chains-config/.git
@@ -580,6 +591,9 @@ jobs:
580591
tar -czvf "cli-chains-${RELEASE_VERSION}.tar.gz" -C cli_dist .
581592
gh release upload "$RELEASE_TAG" "cli-chains-${RELEASE_VERSION}.tar.gz" --clobber --repo "$GITHUB_REPOSITORY"
582593
594+
cp java-chains-sdk.jar "java-chains-sdk-${RELEASE_VERSION}.jar"
595+
gh release upload "$RELEASE_TAG" "java-chains-sdk-${RELEASE_VERSION}.jar" --clobber --repo "$GITHUB_REPOSITORY"
596+
583597
# ====================================================
584598
# Job 5: Docker Build
585599
# ====================================================
@@ -596,7 +610,7 @@ jobs:
596610

597611
- name: Prepare Docker MCP binary names
598612
run: |
599-
rm -f cli-chains.jar
613+
rm -f cli-chains.jar java-chains-sdk.jar
600614
601615
- name: Verify Docker MCP Binaries
602616
run: |

.github/workflows/nightly.yml

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)