04806d2004
统一项目构建输出路径结构,移除冗余的x86 Debug配置 简化CI工作流中的artifact上传逻辑,支持多架构构建 更新PR检查工作流名称以更准确反映其用途 Signed-off-by: doudou0720 <98651603+doudou0720@users.noreply.github.com>
107 lines
4.5 KiB
YAML
107 lines
4.5 KiB
YAML
name: .NET Build & Package
|
|
|
|
on:
|
|
push:
|
|
branches: [ main, beta ]
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}-${{ github.head_ref || github.sha }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build-and-package:
|
|
name: Build & Package
|
|
runs-on: windows-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
architecture: [AnyCPU, x86]
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 1
|
|
|
|
- name: Setup MSBuild
|
|
uses: microsoft/setup-msbuild@v3
|
|
|
|
- name: Setup dotnet
|
|
uses: actions/setup-dotnet@v5
|
|
with:
|
|
cache: true
|
|
cache-dependency-path: '**/packages.lock.json'
|
|
|
|
- name: Restore Package
|
|
run: dotnet restore "Ink Canvas.sln" --locked-mode
|
|
|
|
- name: Build the Solution
|
|
env:
|
|
DLASS_SENTRY_DSN: ${{ secrets.DLASS_SENTRY_DSN }}
|
|
run: msbuild /p:platform="${{ matrix.architecture }}" /p:configuration="Debug" /p:GitFlow="$GITFLOW" "Ink Canvas/InkCanvasForClass.csproj" /m /p:UseMultiToolTask=true /p:EnforceProcessCountAcrossBuilds=true /verbosity:minimal -maxcpucount /p:RunAnalyzers=false
|
|
|
|
- name: Check if exe file is generated
|
|
id: check-exe
|
|
run: |
|
|
$exePath = "Ink Canvas\bin\Debug\${{ matrix.architecture }}\net472\InkCanvasForClass.exe"
|
|
|
|
if (Test-Path $exePath) {
|
|
echo "build_success=true" >> $env:GITHUB_OUTPUT
|
|
} else {
|
|
echo "build_success=false" >> $env:GITHUB_OUTPUT
|
|
|
|
if ("${{ github.event_name }}" -eq "workflow_dispatch") {
|
|
exit 1
|
|
}
|
|
}
|
|
|
|
- name: Create Package (if build succeeded)
|
|
id: create-archive
|
|
if: steps.check-exe.outputs.build_success == 'true'
|
|
env:
|
|
GITHUB_SHA: ${{ github.sha }}
|
|
GITHUB_RUN_NUMBER: ${{ github.run_number }}
|
|
run: |
|
|
$shortSha = $env:GITHUB_SHA.Substring(0, 7)
|
|
$version = "debug-$shortSha-$env:GITHUB_RUN_NUMBER"
|
|
echo "archive_name=$version" >> $env:GITHUB_OUTPUT
|
|
|
|
- name: Upload Artifact (if build succeeded)
|
|
if: steps.check-exe.outputs.build_success == 'true'
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: InkCanvasForClass.CE.debug.${{ matrix.architecture }}
|
|
path: "Ink Canvas/bin/Debug/${{ matrix.architecture }}/net472/*"
|
|
|
|
- name: Create Summary
|
|
if: always()
|
|
shell: bash
|
|
run: |
|
|
echo "# Build Summary" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
|
|
if [ "${{ steps.check-exe.outputs.build_success }}" = "true" ]; then
|
|
echo "## ✅ Build Successful" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo "**Commit:** \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
|
|
echo "**Run:** #${{ github.run_number }}" >> $GITHUB_STEP_SUMMARY
|
|
echo "**Version:** ${{ steps.create-archive.outputs.archive_name }}" >> $GITHUB_STEP_SUMMARY
|
|
echo "**Architecture:** ${{ matrix.architecture }}" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo "[Download Artifact](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo "[Nightly.link Download](https://nightly.link/${{ github.repository }}/actions/runs/${{ github.run_id }}/InkCanvasForClass.CE.debug.zip) \([GhProxy Fastly Mirror](https://cdn.gh-proxy.com/nightly.link/${{ github.repository }}/actions/runs/${{ github.run_id }}/InkCanvasForClass.CE.debug.zip) / [GhProxy Mirror](https://gh-proxy.com/nightly.link/${{ github.repository }}/actions/runs/${{ github.run_id }}/InkCanvasForClass.CE.debug.zip)\)" >> $GITHUB_STEP_SUMMARY
|
|
else
|
|
echo "## ❌ Build Failed" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo "**Event:** ${{ github.event_name }} (${{ github.event.action || 'N/A' }})" >> $GITHUB_STEP_SUMMARY
|
|
echo "**Commit:** \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
|
|
echo "**Architecture:** ${{ matrix.architecture }}" >> $GITHUB_STEP_SUMMARY
|
|
echo "**Run:** #${{ github.run_number }}" >> $GITHUB_STEP_SUMMARY
|
|
echo "" >> $GITHUB_STEP_SUMMARY
|
|
echo "Check build logs for details." >> $GITHUB_STEP_SUMMARY
|
|
fi
|