name: Snap Hutao Canary on: workflow_dispatch: push: branches-ignore: - l10n_develop - main - release - dependabot/** paths-ignore: - '.gitattributes' - '.github/**' - '.gitignore' - '.gitmodules' - '**.md' - 'LICENSE' - '**.yml' jobs: build: runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v6 with: ref: develop fetch-depth: 0 - name: Merge all branches into develop locally id: merge run: | $continue = $true git config user.name "github-actions[bot]" git config user.email "41898282+github-actions[bot]@users.noreply.github.com" git fetch origin '+refs/heads/*:refs/remotes/origin/*' git checkout origin/develop $response = curl -s https://api.github.com/repos/DGP-Studio/Snap.Hutao/pulls?state=open $refs = $response | ConvertFrom-Json | Where-Object { $_.draft -eq $false } | ForEach-Object { $_.head.ref } if ($refs.Count -eq 0 -or ($refs.Count -eq 1 -and $refs -eq "l10n_develop")) { echo "No PRs to merge" $continue = $false echo "continue=$continue" >> $Env:GITHUB_OUTPUT exit } foreach ($ref in $refs) { echo "Merging $ref into develop" git merge "origin/$ref" --strategy=ort --allow-unrelated-histories -m "Merge $ref into develop" } echo "continue=$continue" >> $Env:GITHUB_OUTPUT - name: Setup .NET if: ${{ steps.merge.outputs.continue == 'true' }} uses: actions/setup-dotnet@v5 with: dotnet-version: 10.0 - name: Cache NuGet packages if: ${{ steps.merge.outputs.continue == 'true' }} uses: actions/cache@v5 with: path: ~/.nuget/packages key: ${{ runner.os }}-nuget-${{ hashFiles('**/Snap.Hutao.csproj') }} restore-keys: | ${{ runner.os }}-nuget- - name: Cake if: ${{ steps.merge.outputs.continue == 'true' }} id: cake shell: pwsh run: dotnet tool restore && dotnet cake env: CERTIFICATE: ${{ secrets.CERTIFICATE }} PW: ${{ secrets.PW }} - name: Upload signed msix if: ${{ success() && steps.merge.outputs.continue == 'true' }} uses: actions/upload-artifact@v6 with: name: Snap.Hutao.Canary-${{ steps.cake.outputs.version }} path: ${{ github.workspace }}/src/output/Snap.Hutao.Canary-${{ steps.cake.outputs.version }}.msix - name: Add summary if: ${{ success() && steps.merge.outputs.continue == 'true' }} shell: pwsh run: | $summary = " > [!WARNING] > 该版本是由 CI 程序自动打包生成的 `Canary` 测试版本,包含新功能原型及问题修复 > [!IMPORTANT] > 请先安装 **[DGP_Studio_CA.crt](https://github.com/DGP-Automation/Hutao-Auto-Release/releases/download/certificate-ca/DGP_Studio_CA.crt)** 到 **受信任的根证书颁发机构** 以安装测试版安装包 " echo $summary >> $Env:GITHUB_STEP_SUMMARY