Files
LanMountainDesktop/docs/archive/Plugins develop/06-CI-CD与自动化/03-自动打包与发布.md
2026-06-08 03:54:33 +08:00

2.9 KiB
Raw Blame History

03-自动打包与发布

配置 GitHub Actions 自动打包 .laapp 并发布到 GitHub Releases。


🎯 发布工作流

# .github/workflows/release.yml
name: Release

on:
  push:
    tags:
      - 'v*'

env:
  DOTNET_VERSION: '10.0.x'

jobs:
  build-and-release:
    runs-on: windows-latest
    
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      
      - name: Setup .NET
        uses: actions/setup-dotnet@v4
        with:
          dotnet-version: ${{ env.DOTNET_VERSION }}
      
      - name: Get Version
        id: version
        run: |
          $version = $env:GITHUB_REF -replace 'refs/tags/v', ''
          echo "VERSION=$version" >> $env:GITHUB_OUTPUT
      
      - name: Restore
        run: dotnet restore
      
      - name: Build
        run: dotnet build --configuration Release --no-restore
      
      - name: Package
        run: |
          $version = "${{ steps.version.outputs.VERSION }}"
          Rename-Item -Path "bin/Release/net10.0/MyPlugin.laapp" -NewName "MyPlugin-$version.laapp"
      
      - name: Create Release
        uses: softprops/action-gh-release@v1
        with:
          files: bin/Release/net10.0/*.laapp
          generate_release_notes: true
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

📋 发布流程

1. 创建标签

# 创建版本标签
git tag -a v1.0.0 -m "Release version 1.0.0"

# 推送标签到 GitHub
git push origin v1.0.0

2. 自动触发

推送标签后GitHub Actions 会自动:

  1. 检出代码
  2. 构建项目
  3. 打包 .laapp
  4. 创建 Release
  5. 上传产物

3. 查看 Release

在 GitHub 仓库页面 → Releases 查看自动创建的发布。


🔧 高级配置

预发布版本

- name: Create Release
  uses: softprops/action-gh-release@v1
  with:
    files: bin/Release/net10.0/*.laapp
    prerelease: ${{ contains(github.ref, 'beta') || contains(github.ref, 'alpha') }}

生成变更日志

- name: Generate Changelog
  id: changelog
  uses: mikepenz/release-changelog-builder-action@v4
  with:
    configuration: .github/changelog-config.json
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Create Release
  uses: softprops/action-gh-release@v1
  with:
    body: ${{ steps.changelog.outputs.changelog }}
    files: bin/Release/net10.0/*.laapp

💡 最佳实践

版本号管理

- name: Update Version
  run: |
    $version = "${{ github.ref_name }}" -replace '^v', ''
    $json = Get-Content plugin.json | ConvertFrom-Json
    $json.version = $version
    $json | ConvertTo-Json | Set-Content plugin.json

多文件发布

- name: Create Release
  uses: softprops/action-gh-release@v1
  with:
    files: |
      bin/Release/net10.0/*.laapp
      README.md
      LICENSE

🎯 下一步

学习多平台构建:

👉 04-多平台构建策略


最后更新2026年4月