Skip to content

🔧 修复标记一致性问题:统一模板文件与脚本的标记格式 #28

🔧 修复标记一致性问题:统一模板文件与脚本的标记格式

🔧 修复标记一致性问题:统一模板文件与脚本的标记格式 #28

Workflow file for this run

name: Create Release
on:
push:
tags:
- 'v*.*.*'
workflow_dispatch:
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Get current tag
id: get_tag
run: |
# Get the current tag that triggered this workflow
CURRENT_TAG=${{ github.ref_name }}
# Remove 'v' prefix for package naming
PACKAGE_VERSION=${CURRENT_TAG#v}
echo "current_tag=$CURRENT_TAG" >> $GITHUB_OUTPUT
echo "package_version=$PACKAGE_VERSION" >> $GITHUB_OUTPUT
echo "Using tag: $CURRENT_TAG"
echo "Package version: $PACKAGE_VERSION"
- name: Check if release already exists
id: check_release
run: |
if gh release view ${{ steps.get_tag.outputs.current_tag }} >/dev/null 2>&1; then
echo "exists=true" >> $GITHUB_OUTPUT
echo "Release ${{ steps.get_tag.outputs.current_tag }} already exists, skipping..."
else
echo "exists=false" >> $GITHUB_OUTPUT
echo "Release ${{ steps.get_tag.outputs.current_tag }} does not exist, proceeding..."
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create release package variants
if: steps.check_release.outputs.exists == 'false'
run: |
chmod +x .github/workflows/scripts/create-release-packages.sh
.github/workflows/scripts/create-release-packages.sh ${{ steps.get_tag.outputs.current_tag }}
- name: Generate release notes
if: steps.check_release.outputs.exists == 'false'
id: release_notes
run: |
# Get commits since last tag
LAST_TAG=$(git describe --tags --abbrev=0 HEAD~1 2>/dev/null || echo "")
if [ -z "$LAST_TAG" ]; then
# If no previous tags, get last 20 commits
COMMITS=$(git log --oneline --pretty=format:"- %s" HEAD~20..HEAD)
else
COMMITS=$(git log --oneline --pretty=format:"- %s" $LAST_TAG..HEAD)
fi
# Create release notes
cat > release_notes.md << EOF
Spec Kit CN 中文模板发布 ${{ steps.get_tag.outputs.current_tag }}
Updated specification-driven development templates for multiple AI assistants including GitHub Copilot, Claude Code, Gemini CLI, Cursor, Qwen, OpenCode, Windsurf, Codex, Kilocode, Auggie, Roo, and CodeBuddy.
Download the template for your preferred AI assistant and script type:
- spec-kit-template-copilot-sh-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-copilot-ps-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-claude-sh-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-claude-ps-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-gemini-sh-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-gemini-ps-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-cursor-agent-sh-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-cursor-agent-ps-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-qwen-sh-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-qwen-ps-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-opencode-sh-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-opencode-ps-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-q-sh-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-q-ps-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-windsurf-sh-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-windsurf-ps-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-codex-sh-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-codex-ps-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-kilocode-sh-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-kilocode-ps-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-auggie-sh-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-auggie-ps-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-roo-sh-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-roo-ps-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-codebuddy-sh-${{ steps.get_tag.outputs.package_version }}.zip
- spec-kit-template-codebuddy-ps-${{ steps.get_tag.outputs.package_version }}.zip
EOF
echo "Generated release notes:"
cat release_notes.md
- name: Create GitHub Release
if: steps.check_release.outputs.exists == 'false'
run: |
# Use package_version (without v) for release title
VERSION_NO_V=${{ steps.get_tag.outputs.package_version }}
gh release create ${{ steps.get_tag.outputs.current_tag }} \
spec-kit-template-copilot-sh-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-copilot-ps-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-claude-sh-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-claude-ps-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-gemini-sh-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-gemini-ps-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-cursor-agent-sh-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-cursor-agent-ps-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-qwen-sh-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-qwen-ps-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-opencode-sh-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-opencode-ps-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-q-sh-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-q-ps-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-windsurf-sh-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-windsurf-ps-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-codex-sh-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-codex-ps-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-kilocode-sh-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-kilocode-ps-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-auggie-sh-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-auggie-ps-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-roo-sh-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-roo-ps-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-codebuddy-sh-${{ steps.get_tag.outputs.package_version }}.zip \
spec-kit-template-codebuddy-ps-${{ steps.get_tag.outputs.package_version }}.zip \
--title "Spec Kit CN 中文模板 - $VERSION_NO_V" \
--notes-file release_notes.md
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Update version in pyproject.toml (for release artifacts only)
if: steps.check_release.outputs.exists == 'false'
run: |
# Update version in pyproject.toml using package_version (without v prefix)
PYTHON_VERSION=${{ steps.get_tag.outputs.package_version }}
if [ -f "pyproject.toml" ]; then
sed -i "s/version = \".*\"/version = \"$PYTHON_VERSION\"/" pyproject.toml
echo "Updated pyproject.toml version to $PYTHON_VERSION (for release artifacts only)"
fi
# Note: No longer committing version changes back to main branch
# The version is only updated in the release artifacts