name: Publish Release on: push: tags: - 'v*' # 当推送以 "v" 开头的标签时触发(如 v1.0.0, v2.1.0) jobs: update-release-draft: permissions: contents: write pull-requests: write runs-on: ubuntu-latest steps: # Step 1: 检出代码库 - name: Checkout code uses: actions/checkout@v3 # Step 2: 获取项目名称 - name: Get Project Name id: project_info run: | REPO_NAME=${GITHUB_REPOSITORY#*/} echo "repo_name=$REPO_NAME" >> $GITHUB_OUTPUT echo "Using repository name: $REPO_NAME" # Step 3: 自动生成 Release - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref_name }} release_name: ${{ github.ref_name }} draft: false prerelease: false # Step 4: 构建zip文件 - name: Create ZIP file run: | zip -r ${{ steps.project_info.outputs.repo_name }}.zip . -x "*.git*" "*.github*" "*.env*" "logs/*" "tests/*" # Step 5: 上传构建文件 - name: Upload Release Asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./${{ steps.project_info.outputs.repo_name }}.zip asset_name: ${{ steps.project_info.outputs.repo_name }}.zip asset_content_type: application/zip