Skip to main content
Glama
publish-beta.yaml4.78 kB
name: Publish Beta on: push: branches: - dev jobs: publish-beta: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 token: ${{ secrets.GITHUB_TOKEN }} - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' registry-url: 'https://registry.npmjs.org' - name: Install dependencies run: npm ci - name: Build run: npm run build - name: Configure Git run: | git config --global user.name "Gitea Actions" git config --global user.email "actions@gitea.local" - name: Get npm latest version id: npm_latest run: | PACKAGE_NAME=$(node -p "require('./package.json').name") NPM_LATEST=$(npm view "$PACKAGE_NAME" version --registry https://registry.npmjs.org 2>/dev/null || echo "0.0.0") echo "npm latest version: $NPM_LATEST" echo "npm_latest=$NPM_LATEST" >> $GITHUB_OUTPUT - name: Bump beta version id: version run: | # 获取当前版本 CURRENT_VERSION=$(node -p "require('./package.json').version") PACKAGE_NAME=$(node -p "require('./package.json').name") NPM_LATEST="${{ steps.npm_latest.outputs.npm_latest }}" echo "Current version: $CURRENT_VERSION" echo "Package name: $PACKAGE_NAME" echo "npm latest: $NPM_LATEST" # 获取 npm 上已发布的 beta 版本 NPM_BETA_VERSIONS=$(npm view "$PACKAGE_NAME" versions --json 2>/dev/null | grep -oP '\d+\.\d+\.\d+-beta\.\d+' || echo "") echo "Existing beta versions on npm: $NPM_BETA_VERSIONS" # 移除 beta 后缀获取本地基础版本 LOCAL_BASE=$(echo "$CURRENT_VERSION" | sed 's/-beta.*//') # 计算 beta 基础版本 # 规则: # 1. 如果 LOCAL_BASE > NPM_LATEST,说明已经手动 bump 过,直接使用 LOCAL_BASE # 2. 如果 LOCAL_BASE <= NPM_LATEST,使用 NPM_LATEST + 0.0.1 COMPARE_RESULT=$(printf "%s\n%s" "$LOCAL_BASE" "$NPM_LATEST" | sort -V | tail -1) if [[ "$LOCAL_BASE" == "$COMPARE_RESULT" && "$LOCAL_BASE" != "$NPM_LATEST" ]]; then # LOCAL_BASE > NPM_LATEST,使用 LOCAL_BASE 作为 beta 基础版本 BASE_VERSION="$LOCAL_BASE" echo "Using LOCAL_BASE as beta base (already bumped): $BASE_VERSION" else # LOCAL_BASE <= NPM_LATEST,需要基于 NPM_LATEST 递增 patch MAJOR=$(echo "$NPM_LATEST" | cut -d. -f1) MINOR=$(echo "$NPM_LATEST" | cut -d. -f2) PATCH=$(echo "$NPM_LATEST" | cut -d. -f3) NEXT_PATCH=$((PATCH + 1)) BASE_VERSION="${MAJOR}.${MINOR}.${NEXT_PATCH}" echo "Using NPM_LATEST + 0.0.1 as beta base: $BASE_VERSION" fi # 查找该基础版本下最大的 beta 号 MAX_BETA=-1 for v in $NPM_BETA_VERSIONS; do if [[ "$v" == "${BASE_VERSION}-beta."* ]]; then BETA_NUM=$(echo "$v" | grep -oP '(?<=-beta\.)\d+') if [[ "$BETA_NUM" -gt "$MAX_BETA" ]]; then MAX_BETA=$BETA_NUM fi fi done echo "Max beta number for $BASE_VERSION: $MAX_BETA" # 生成新版本号 NEW_BETA_NUM=$((MAX_BETA + 1)) NEW_VERSION="${BASE_VERSION}-beta.${NEW_BETA_NUM}" echo "New version: $NEW_VERSION" echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT # 更新 package.json npm version "$NEW_VERSION" --no-git-tag-version - name: Publish to npm (beta) run: npm publish --tag beta --registry https://registry.npmjs.org/ env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - name: Commit version bump run: | VERSION="${{ steps.version.outputs.version }}" git add package.json git diff --cached --quiet || git commit -m "chore: bump version to ${VERSION} [skip ci]" git push origin dev || echo "::warning::Failed to push version update to dev branch" - name: Create summary run: | echo "## Beta 版本发布成功 🚀" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "**版本号**: \`${{ steps.version.outputs.version }}\`" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "**安装命令**:" >> $GITHUB_STEP_SUMMARY echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY echo "npm install -g gitea-mcp-tool@beta" >> $GITHUB_STEP_SUMMARY echo "\`\`\`" >> $GITHUB_STEP_SUMMARY

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SupenBysz/gitea-mcp-tool'

If you have feedback or need assistance with the MCP directory API, please join our Discord server