name: Build and Release on: push: tags: - 'v*.*.*' workflow_dispatch: inputs: version: description: 'Version to release' required: false jobs: build-and-release: runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@v3 with: fetch-depth: 20 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: '20' - name: Get version from package.json id: get_version run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT - name: Determine version id: determine_version run: | if [ "${{ github.event.inputs.version }}" ]; then echo "version=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT else echo "version=${{ steps.get_version.outputs.version }}" >> $GITHUB_OUTPUT fi - name: Generate release notes id: release_notes run: | echo "#### Changes" > release_notes.md git log -20 --pretty=format:"- %s" >> release_notes.md echo -e "\n-----------\n哪吒V1请下载dist.zip\n哪吒V0请下载v0-dist.zip\n哪吒V0/nazhua/子目录需求请下载v0-nazhua.zip\nv${{ steps.determine_version.outputs.version }}-all.zip是包含字体的全量包\nv${{ steps.determine_version.outputs.version }}-cdn-jsdelivr.zip是jsdelivr引用版\nv${{ steps.determine_version.outputs.version }}-cdn-loli.zip是cdnjs的loli.net引用版" >> release_notes.md - name: Install dependencies run: npm install - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: v${{ steps.determine_version.outputs.version }} release_name: Release v${{ steps.determine_version.outputs.version }} draft: true prerelease: false - name: 构建自动版 - 完整引用版本 run: npm run build - name: 打包v${{ steps.determine_version.outputs.version }}-all.zip run: zip -r v${{ steps.determine_version.outputs.version }}-all.zip dist - name: 构建自动版 - JSDeliver引用版本 env: VITE_SARASA_TERM_SC_USE_CDN: '1' VITE_USE_CDN: '1' VITE_CDN_LIB_TYPE: 'jsdelivr' run: npm run build - name: 打包v${{ steps.determine_version.outputs.version }}-cdn-jsdelivr.zip run: zip -r v${{ steps.determine_version.outputs.version }}-cdn-jsdelivr.zip dist - name: 构建自动版 - loli(CDNJS)引用版本 env: VITE_DISABLE_SARASA_TERM_SC: '1' VITE_USE_CDN: '1' VITE_CDN_LIB_TYPE: 'loli' run: npm run build - name: 打包v${{ steps.determine_version.outputs.version }}-cdn-loli.zip run: zip -r v${{ steps.determine_version.outputs.version }}-cdn-loli.zip dist - name: 构建哪吒v0子目录版本 env: VITE_BASE_PATH: '/nazhua/' VITE_NEZHA_VERSION: 'v0' VITE_DISABLE_SARASA_TERM_SC: '1' run: npm run build - name: 打包v0-nazhua.zip run: zip -r v0-nazhua.zip dist - name: 构建哪吒v0版本 env: VITE_NEZHA_VERSION: 'v0' VITE_DISABLE_SARASA_TERM_SC: '1' run: npm run build - name: 打包v0-dist.zip run: zip -r v0-dist.zip dist - name: 构建哪吒v1版本 env: VITE_NEZHA_VERSION: 'v1' VITE_DISABLE_SARASA_TERM_SC: '1' run: npm run build - name: 打包dist.zip run: zip -r dist.zip dist - name: Upload v${{ steps.determine_version.outputs.version }}-all.zip uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./v${{ steps.determine_version.outputs.version }}-all.zip asset_name: v${{ steps.determine_version.outputs.version }}-all.zip asset_content_type: application/zip - name: Upload v${{ steps.determine_version.outputs.version }}-cdn-jsdelivr.zip uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./v${{ steps.determine_version.outputs.version }}-cdn-jsdelivr.zip asset_name: v${{ steps.determine_version.outputs.version }}-cdn-jsdelivr.zip asset_content_type: application/zip - name: Upload v${{ steps.determine_version.outputs.version }}-cdn-loli.zip uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./v${{ steps.determine_version.outputs.version }}-cdn-loli.zip asset_name: v${{ steps.determine_version.outputs.version }}-cdn-loli.zip asset_content_type: application/zip - name: Upload v0-nazhua.zip uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./v0-nazhua.zip asset_name: v0-nazhua.zip asset_content_type: application/zip - name: Upload v0-dist.zip uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./v0-dist.zip asset_name: v0-dist.zip asset_content_type: application/zip - name: Upload dist.zip uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./dist.zip asset_name: dist.zip asset_content_type: application/zip - name: Add release notes run: | # 更新发布说明 gh release edit v${{ steps.determine_version.outputs.version }} --notes-file release_notes.md env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}