Files
time-mocker-csharp/.github/workflows/release.yml
T
2026-02-27 16:11:00 +07:00

60 lines
1.8 KiB
YAML

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 }}