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

  1. 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'
  1. 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 }}