Skip to content

Commit d0f6278

Browse files
committed
fix(windows): align source channel and prerelease binaries
Refs #538
1 parent 7c9b420 commit d0f6278

File tree

17 files changed

+736
-457
lines changed

17 files changed

+736
-457
lines changed

.github/workflows/release-windows.yml

Lines changed: 45 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
name: Build Windows Release
1+
name: Build Windows Prerelease
22

33
on:
44
push:
55
tags:
6-
- 'v*.*.*' # Trigger on version tags (e.g., v1.0.0)
7-
- 'V*.*.*' # Also support uppercase V (e.g., V1.0.0)
86
- 'v*.*.*-windows' # Windows-specific releases
97
- 'V*.*.*-windows' # Windows-specific releases (uppercase)
108
workflow_dispatch: # Allow manual trigger
@@ -19,7 +17,7 @@ permissions:
1917

2018
jobs:
2119
build-windows:
22-
name: Build Windows Release Artifacts
20+
name: Build Windows Prerelease Artifacts
2321
runs-on: windows-latest
2422

2523
steps:
@@ -31,7 +29,7 @@ jobs:
3129
- name: Setup Go
3230
uses: actions/setup-go@v5
3331
with:
34-
go-version: '1.21'
32+
go-version: '1.24.6'
3533

3634
- name: Setup PowerShell
3735
shell: pwsh
@@ -47,6 +45,7 @@ jobs:
4745
$version = "${{ github.event.inputs.version }}"
4846
} elseif ("${{ github.ref }}" -like "refs/tags/*") {
4947
$version = "${{ github.ref }}" -replace '^refs/tags/[Vv]', ''
48+
$version = $version -replace '-windows$', ''
5049
} else {
5150
$content = Get-Content mole.ps1 -Raw
5251
if ($content -match '\$script:MOLE_VER\s*=\s*"([^"]+)"') {
@@ -79,6 +78,12 @@ jobs:
7978
shell: pwsh
8079
run: |
8180
& scripts\build-release.ps1 -Version ${{ steps.version.outputs.VERSION }}
81+
82+
- name: Prepare raw TUI binary assets
83+
shell: pwsh
84+
run: |
85+
Copy-Item "bin\analyze.exe" "release\analyze-windows-x64.exe" -Force
86+
Copy-Item "bin\status.exe" "release\status-windows-x64.exe" -Force
8287
8388

8489
- name: Build standalone EXE
@@ -117,30 +122,57 @@ jobs:
117122
name: checksums
118123
path: release/SHA256SUMS.txt
119124
if-no-files-found: error
125+
126+
- name: Upload TUI binaries
127+
uses: actions/upload-artifact@v4
128+
with:
129+
name: tui-binaries
130+
path: |
131+
release/analyze-windows-x64.exe
132+
release/status-windows-x64.exe
133+
if-no-files-found: error
134+
135+
- name: Collect release files
136+
id: release_files
137+
shell: pwsh
138+
run: |
139+
$files = @(
140+
"release/mole-${{ steps.version.outputs.VERSION }}-x64.zip",
141+
"release/analyze-windows-x64.exe",
142+
"release/status-windows-x64.exe",
143+
"release/SHA256SUMS.txt"
144+
)
145+
$optionalExe = "release/mole-${{ steps.version.outputs.VERSION }}-x64.exe"
146+
if (Test-Path $optionalExe) {
147+
$files += $optionalExe
148+
}
149+
"files<<EOF" | Out-File -FilePath $env:GITHUB_OUTPUT -Encoding utf8 -Append
150+
$files | Out-File -FilePath $env:GITHUB_OUTPUT -Encoding utf8 -Append
151+
"EOF" | Out-File -FilePath $env:GITHUB_OUTPUT -Encoding utf8 -Append
120152
121-
- name: Create GitHub Release
153+
- name: Create GitHub Prerelease
122154
if: startsWith(github.ref, 'refs/tags/')
123155
uses: softprops/action-gh-release@v1
124156
with:
125-
files: |
126-
release/mole-${{ steps.version.outputs.VERSION }}-x64.zip
127-
release/mole-${{ steps.version.outputs.VERSION }}-x64.exe
128-
release/SHA256SUMS.txt
157+
files: ${{ steps.release_files.outputs.files }}
129158
draft: false
130-
prerelease: false
159+
prerelease: true
131160
generate_release_notes: true
132161
body: |
133-
## Windows System Maintenance Toolkit
162+
## Windows System Maintenance Toolkit (Prerelease)
134163
135164
**Download:** `mole-${{ steps.version.outputs.VERSION }}-x64.zip` (portable) or `.exe` (launcher)
165+
**TUI assets:** `analyze-windows-x64.exe` and `status-windows-x64.exe`
136166
137167
**Install:**
138168
```powershell
139169
Expand-Archive mole-${{ steps.version.outputs.VERSION }}-x64.zip -DestinationPath C:\mole
140170
cd C:\mole
141171
.\install.ps1
142172
```
143-
173+
174+
These assets are prerelease-only and do not affect the macOS stable release channel.
175+
144176
**Verify:** Check SHA256SUMS.txt for file integrity.
145177
env:
146178
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/release.yml

Lines changed: 0 additions & 106 deletions
This file was deleted.

.github/workflows/test.yml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,21 +54,19 @@ jobs:
5454

5555
- name: Build Go binaries
5656
run: |
57-
cd cmd/analyze
58-
go build -o analyze.exe .
59-
cd ../status
60-
go build -o status.exe .
57+
go build -o bin/analyze.exe ./cmd/analyze/
58+
go build -o bin/status.exe ./cmd/status/
6159
shell: pwsh
6260

6361
- name: Verify binaries
6462
run: |
65-
if (Test-Path cmd/analyze/analyze.exe) {
63+
if (Test-Path bin/analyze.exe) {
6664
Write-Host "analyze.exe built successfully"
6765
} else {
6866
Write-Host "Failed to build analyze.exe"
6967
exit 1
7068
}
71-
if (Test-Path cmd/status/status.exe) {
69+
if (Test-Path bin/status.exe) {
7270
Write-Host "status.exe built successfully"
7371
} else {
7472
Write-Host "Failed to build status.exe"

0 commit comments

Comments
 (0)