mirror of
https://github.com/iflytek/skillhub.git
synced 2026-09-15 23:31:10 +00:00
- Remove "还未发布" from .npmignore, add src/ to excludes - Add scripts/notify-feishu.sh for Feishu bot release notifications - Add scripts/release-cli.sh for one-click CLI release workflow
60 lines
1.6 KiB
Bash
Executable file
60 lines
1.6 KiB
Bash
Executable file
#!/bin/bash
|
|
# Release skillhub-cli: build, test, version bump, publish, notify
|
|
# Usage: ./scripts/release-cli.sh [patch|minor|major] [prev_version]
|
|
# Examples:
|
|
# ./scripts/release-cli.sh patch # 1.0.7 -> 1.0.8
|
|
# ./scripts/release-cli.sh minor # 1.0.7 -> 1.1.0
|
|
# ./scripts/release-cli.sh patch 1.0.6 # with prev_version for changelog
|
|
set -euo pipefail
|
|
|
|
BUMP="${1:-patch}"
|
|
PREV_VERSION="${2:-}"
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
CLI_DIR="$PROJECT_DIR/skillhub-cli"
|
|
|
|
echo "=== skillhub-cli release ==="
|
|
echo ""
|
|
|
|
# Step 1: Build
|
|
echo "[1/5] Building..."
|
|
cd "$CLI_DIR"
|
|
pnpm build
|
|
echo "Build OK"
|
|
echo ""
|
|
|
|
# Step 2: Run tests
|
|
echo "[2/5] Running tests..."
|
|
if pnpm test; then
|
|
echo "Tests OK"
|
|
else
|
|
echo "Tests FAILED. Aborting release."
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# Step 3: Bump version
|
|
OLD_VERSION=$(node -p "require('./package.json').version")
|
|
npm version "$BUMP" --no-git-tag-version -m "chore(cli): release v%s"
|
|
NEW_VERSION=$(node -p "require('./package.json').version")
|
|
echo "[3/5] Version bumped: $OLD_VERSION -> $NEW_VERSION"
|
|
echo ""
|
|
|
|
# Step 4: Publish
|
|
echo "[4/5] Publishing to npm..."
|
|
npm publish --access public
|
|
echo "Published motovis-skillhub@$NEW_VERSION"
|
|
echo ""
|
|
|
|
# Step 5: Notify via Feishu
|
|
echo "[5/5] Sending Feishu notification..."
|
|
if [ -n "${FEISHU_WEBHOOK_URL:-}" ]; then
|
|
"$SCRIPT_DIR/notify-feishu.sh" "$NEW_VERSION" "$PREV_VERSION"
|
|
else
|
|
echo "FEISHU_WEBHOOK_URL not set, skipping notification"
|
|
echo "To send manually: FEISHU_WEBHOOK_URL=xxx $SCRIPT_DIR/notify-feishu.sh $NEW_VERSION $PREV_VERSION"
|
|
fi
|
|
echo ""
|
|
|
|
echo "=== Release complete: v$NEW_VERSION ==="
|