Github設定メモ - DrumMidiEditor/DrumMidiEditorApp GitHub Wiki
Actions によるビルド設定
署名の作成
Githubへの署名登録
証明書の設定 参考URL
https://devlog.grapecity.co.jp/github-actions-wpf-netcore/
https://zenn.dev/nuits_jp/articles/2023-07-04-net-wpf-build-with-actions
- Visual Studioで[ツール]-[コマンドライン]-[開発者用 PowerShell]をクリックしてPowerShellを起動
cd '.\DrumMidiEditorApp\DrumMidiEditorApp (Package)\'
$pfx_cert = Get-Content '.\DrumMidiEditorApp (Package)_TemporaryKey.pfx' -Encoding Byte
[System.Convert]::ToBase64String($pfx_cert) | Out-File 'DrumMidiEditorApp (Package)_TemporaryKey.txt'
- Githubの [Settings] - [Secrets] - [Actions] の [New repository secret]ボタンより下記2つの設定を登録
1個目
- Name:「Base64_Encoded_Pfx」
- Value:1で作成した「DrumMidiEditorApp (Package)_TemporaryKey.txt」の中身
2個目
- Name:「Pfx_Key」
- Value:署名のパスワード
Workflowの追加
参考:WinUI 3 アプリの継続的インテグレーションをセットアップする
https://docs.microsoft.com/ja-jp/windows/apps/package-and-deploy/ci-for-winui3?pivots=winui3-packaged-csharp
設定メモ
strategy:
matrix:
configuration: [Release]
#configuration: [Debug, Release]
platform: [x64]
env:
Solution_Name: DrumMidiEditorApp.sln
Test_Project_Path: none
Wap_Project_Directory: DrumMidiEditorApp\DrumMidiEditorApp (Package)
Wap_Project_Path: DrumMidiEditorApp\DrumMidiEditorApp (Package)\DrumMidiEditorApp (Package).wapproj
# Install the .NET Core workload
- name: Install .NET Core
uses: actions/setup-dotnet@v2
with:
dotnet-version: 6.0.x
# Execute all unit tests in the solution
# - name: Execute unit tests
# run: dotnet test
# Create the app package by building and packaging the Windows Application Packaging project
- name: Create the app package
run: msbuild $env:Wap_Project_Path /p:Configuration=$env:Configuration /p:UapAppxPackageBuildMode=$env:Appx_Package_Build_Mode /p:AppxBundle=$env:Appx_Bundle /p:PackageCertificateKeyFile=GitHubActionsWorkflow.pfx /p:PackageCertificatePassword=${{ secrets.Pfx_Key }}
env:
Appx_Bundle: Never
#Appx_Bundle: Always
Appx_Bundle_Platforms: x64
#Appx_Bundle_Platforms: x86|x64
Appx_Package_Build_Mode: SideloadOnly
#Appx_Package_Build_Mode: StoreUpload
Configuration: ${{ matrix.configuration }}
Platform: ${{ matrix.platform }}