name: Create Draft Release on: push: tags: - "v*" permissions: contents: write jobs: build-and-release: runs-on: windows-2025-vs2026 steps: - name: Checkout uses: actions/checkout@v6 - name: Setup .NET uses: actions/setup-dotnet@v5 with: dotnet-version: 10.x - name: Build Hook DLL (x86) run: dotnet build TimeMocker.Hook\TimeMocker.Hook.csproj -c Release -p:Platform=x86 - name: Build Hook DLL (x64) run: dotnet build TimeMocker.Hook\TimeMocker.Hook.csproj -c Release -p:Platform=x64 - name: Build UI run: dotnet build TimeMocker.UI\TimeMocker.UI.csproj -c Release -p:Platform=x64 - name: Verify Hook DLL sizes run: | $x64 = (Get-Item "TimeMocker.Hook\bin\x64\Release\net48\TimeMocker.Hook.dll").Length $x86 = (Get-Item "TimeMocker.Hook\bin\x86\Release\net48\TimeMocker.Hook.dll").Length Write-Host "x64 hook DLL: $x64 bytes" Write-Host "x86 hook DLL: $x86 bytes" if ($x64 -lt 20000) { throw "x64 hook DLL too small - build failed silently" } if ($x86 -lt 20000) { throw "x86 hook DLL too small - build failed silently" } - name: Prepare Release Artifacts run: | mkdir release copy TimeMocker.UI\bin\x64\Release\net48\*.dll release\ copy TimeMocker.UI\bin\x64\Release\net48\*.exe release\ copy TimeMocker.UI\bin\x64\Release\net48\*.config release\ - name: Zip Release run: Compress-Archive -Path release\* -DestinationPath TimeMocker-x64.zip - name: Create Draft Release uses: softprops/action-gh-release@v2 with: files: TimeMocker-x64.zip draft: true generate_release_notes: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}