name: release # Tag a commit `vX.Y.Z` and push the tag to cut a release. on: push: tags: ['v*'] permissions: contents: write # create the GitHub release jobs: release: runs-on: windows-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-dotnet@v4 with: dotnet-version: '10.0.x' - name: Publish (single-file, self-contained, win-x64) run: > dotnet publish src/Oddmon.App/Oddmon.App.csproj -c Release -r win-x64 --self-contained -p:PublishSingleFile=true -o publish - name: Zip shell: pwsh run: | $ver = "${{ github.ref_name }}".TrimStart('v') $name = "oddmon-$ver-win-x64" # publish/ holds oddmon.exe + the sounds/ folder (WAVs stay loose, not embedded). Compress-Archive -Path publish/* -DestinationPath "$name.zip" "ASSET=$name.zip" | Out-File -FilePath $env:GITHUB_ENV -Append - name: Create release # ponytail: no code signing — project has no cert, so SmartScreen may warn on # first run (noted in release body). Add a signing step here if a cert is acquired. uses: softprops/action-gh-release@v2 with: files: ${{ env.ASSET }} generate_release_notes: true