1+ name : Build and Release MSIXBuilder GUI
2+
3+ on :
4+ push :
5+ branches : [ main ]
6+ paths :
7+ - ' GUI/**'
8+ - ' Create-MSIXPackage.ps1'
9+ - ' .github/workflows/build-gui.yml'
10+ pull_request :
11+ branches : [ main ]
12+ paths :
13+ - ' GUI/**'
14+ - ' Create-MSIXPackage.ps1'
15+ workflow_dispatch :
16+
17+ env :
18+ SOLUTION_FILE_PATH : GUI/MSIXBuilderGUI.sln
19+ BUILD_CONFIGURATION : Release
20+ PLATFORM : x64
21+
22+ permissions :
23+ contents : write
24+ actions : read
25+ security-events : write
26+
27+ jobs :
28+ build :
29+ runs-on : windows-latest
30+
31+ steps :
32+ - name : Checkout
33+ uses : actions/checkout@v4
34+ with :
35+ fetch-depth : 0
36+
37+ - name : Setup .NET
38+ uses : actions/setup-dotnet@v4
39+ with :
40+ dotnet-version : ' 8.0.x'
41+
42+ - name : Setup MSBuild
43+ uses : microsoft/setup-msbuild@v2
44+
45+ - name : Setup NuGet
46+ uses : NuGet/setup-nuget@v2
47+
48+
49+
50+ - name : Restore NuGet packages
51+ run : nuget restore ${{ env.SOLUTION_FILE_PATH }}
52+
53+ - name : Build GUI Application
54+ run : |
55+ msbuild ${{ env.SOLUTION_FILE_PATH }} /m /p:Configuration=${{ env.BUILD_CONFIGURATION }} /p:Platform=${{ env.PLATFORM }}
56+
57+ - name : Publish Application
58+ run : |
59+ # Ensure the PowerShell script exists for embedding
60+ if (!(Test-Path "Create-MSIXPackage.ps1")) {
61+ Write-Error "Create-MSIXPackage.ps1 not found in root directory"
62+ exit 1
63+ }
64+ dotnet publish GUI/MSIXBuilderGUI/MSIXBuilderGUI.csproj --configuration ${{ env.BUILD_CONFIGURATION }} --output GUI/publish
65+ shell : powershell
66+
67+ - name : Create Release Archive
68+ run : |
69+ # Copy the PowerShell script to the publish directory for inclusion
70+ Copy-Item "Create-MSIXPackage.ps1" "GUI/publish/"
71+
72+ # Create a single zip file with GUI + PowerShell script
73+ Compress-Archive -Path "GUI/publish/*" -DestinationPath "MSIXBuilderGUI-v${{ github.run_number }}.zip"
74+ shell : powershell
75+
76+ - name : Upload Build Artifacts
77+ uses : actions/upload-artifact@v4
78+ with :
79+ name : MSIXBuilderGUI-${{ github.sha }}
80+ path : |
81+ MSIXBuilderGUI-v${{ github.run_number }}.zip
82+
83+ - name : Debug Release Info
84+ if : github.ref == 'refs/heads/main' && github.event_name == 'push'
85+ run : |
86+ echo "GitHub Token exists: ${{ secrets.GITHUB_TOKEN != '' }}"
87+ echo "Repository: ${{ github.repository }}"
88+ echo "Run number: ${{ github.run_number }}"
89+ echo "SHA: ${{ github.sha }}"
90+ ls -la *.zip
91+ shell : bash
92+
93+ - name : Create Release
94+ if : github.ref == 'refs/heads/main' && github.event_name == 'push'
95+ uses : softprops/action-gh-release@v2
96+ with :
97+ tag_name : v${{ github.run_number }}
98+ name : MSIXBuilder GUI v${{ github.run_number }}
99+ body : |
100+ ## 🚀 MSIXBuilder GUI Release v${{ github.run_number }}
101+
102+ **What's New:**
103+ - Latest build with all improvements and bug fixes
104+ - Automatic PowerShell script execution with non-interactive mode
105+ - One-click certificate installation
106+ - Comprehensive logging and error handling
107+ - Modern Windows Forms interface
108+
109+ **Downloads:**
110+ - `MSIXBuilderGUI-v${{ github.run_number }}.zip` - GUI application + PowerShell script
111+
112+ **Requirements:**
113+ - Windows 10 (1809+) or Windows 11
114+ - .NET 8.0 Runtime
115+ - Administrator privileges
116+
117+ **Usage:**
118+ 1. Download and extract the zip file
119+ 2. Run `MSIXBuilderGUI.exe`
120+ 3. Configure your package settings
121+ 4. Click "Create Package" and enjoy! 🎉
122+
123+ Built from commit: ${{ github.sha }}
124+ files : |
125+ MSIXBuilderGUI-v${{ github.run_number }}.zip
126+ draft : false
127+ prerelease : false
128+ env :
129+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments