1- # This workflow uses actions that are not certified by GitHub.
2- # They are provided by a third-party and are governed by
3- # separate terms of service, privacy policy, and support
4- # documentation.
5-
6- # This workflow will build, test, sign and package a WPF or Windows Forms desktop application
7- # built on .NET Core.
8- # To learn how to migrate your existing application to .NET Core,
9- # refer to https://docs.microsoft.com/en-us/dotnet/desktop-wpf/migration/convert-project-from-net-framework
10- #
11- # To configure this workflow:
12- #
13- # 1. Configure environment variables
14- # GitHub sets default environment variables for every workflow run.
15- # Replace the variables relative to your project in the "env" section below.
16- #
17- # 2. Signing
18- # Generate a signing certificate in the Windows Application
19- # Packaging Project or add an existing signing certificate to the project.
20- # Next, use PowerShell to encode the .pfx file using Base64 encoding
21- # by running the following Powershell script to generate the output string:
22- #
23- # $pfx_cert = Get-Content '.\SigningCertificate.pfx' -Encoding Byte
24- # [System.Convert]::ToBase64String($pfx_cert) | Out-File 'SigningCertificate_Encoded.txt'
25- #
26- # Open the output file, SigningCertificate_Encoded.txt, and copy the
27- # string inside. Then, add the string to the repo as a GitHub secret
28- # and name it "Base64_Encoded_Pfx."
29- # For more information on how to configure your signing certificate for
30- # this workflow, refer to https://github.com/microsoft/github-actions-for-desktop-apps#signing
31- #
32- # Finally, add the signing certificate password to the repo as a secret and name it "Pfx_Key".
33- # See "Build the Windows Application Packaging project" below to see how the secret is used.
34- #
35- # For more information on GitHub Actions, refer to https://github.com/features/actions
36- # For a complete CI/CD sample to get started with GitHub Action workflows for Desktop Applications,
37- # refer to https://github.com/microsoft/github-actions-for-desktop-apps
38-
391name : TTSBroswer
402
413on :
457 branches : [ "master" ]
468
479jobs :
48-
4910 build :
50-
5111 strategy :
5212 matrix :
5313 configuration : [Debug, Release]
5414
55- runs-on : windows-latest # For a list of available runner types, refer to
56- # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on
15+ runs-on : windows-latest
5716
5817 env :
59- Solution_Name : TTSBroswer # Replace with your solution name, i.e. MyWpfApp. sln.
60- Test_Project_Path : TTSBroswer.TTSBroswer # Replace with the path to your test project, i.e. MyWpfApp.Tests\MyWpfApp.Tests. csproj.
61- Wap_Project_Directory : TTSBroswer.TSBroswer # Replace with the Wap project directory relative to the solution, i.e. MyWpfApp.Package.
62- Wap_Project_Path : TTSBroswer.TTSBroswer # Replace with the path to your Wap project, i.e. MyWpf.App.Package\MyWpfApp.Package. wapproj.
18+ Solution_Name : TTSBroswer. sln
19+ Test_Project_Path : TTSBroswer.TTSBroswer/TTSBroswer.TTSBroswer. csproj
20+ Wap_Project_Directory : TTSBroswer.TSBroswer
21+ Wap_Project_Path : TTSBroswer.TTSBroswer/TTSBroswer.TTSBroswer. wapproj
6322
6423 steps :
6524 - name : Checkout
6625 uses : actions/checkout@v4
6726 with :
6827 fetch-depth : 0
6928
70- # Install the .NET Core workload
7129 - name : Install .NET Core
7230 uses : actions/setup-dotnet@v4
7331 with :
7432 dotnet-version : 8.0.x
7533
76- # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild
7734 - name : Setup MSBuild.exe
7835 uses : microsoft/setup-msbuild@v2
7936
80- # Execute all unit tests in the solution
8137 - name : Execute unit tests
82- run : dotnet test
38+ run : dotnet test $env:Test_Project_Path
8339
84- # Restore the application to populate the obj folder with RuntimeIdentifiers
8540 - name : Restore the application
8641 run : msbuild $env:Solution_Name /t:Restore /p:Configuration=$env:Configuration
8742 env :
8843 Configuration : ${{ matrix.configuration }}
8944
90- # Decode the base 64 encoded pfx and save the Signing_Certificate
9145 - name : Decode the pfx
9246 run : |
9347 $pfx_cert_byte = [System.Convert]::FromBase64String("${{ secrets.Base64_Encoded_Pfx }}")
9448 $certificatePath = Join-Path -Path $env:Wap_Project_Directory -ChildPath GitHubActionsWorkflow.pfx
9549 [IO.File]::WriteAllBytes("$certificatePath", $pfx_cert_byte)
9650
97- # Create the app package by building and packaging the Windows Application Packaging project
9851 - name : Create the app package
9952 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 }}
10053 env :
@@ -103,11 +56,9 @@ jobs:
10356 Appx_Package_Build_Mode : StoreUpload
10457 Configuration : ${{ matrix.configuration }}
10558
106- # Remove the pfx
10759 - name : Remove the pfx
10860 run : Remove-Item -path $env:Wap_Project_Directory\GitHubActionsWorkflow.pfx
10961
110- # Upload the MSIX package: https://github.com/marketplace/actions/upload-a-build-artifact
11162 - name : Upload build artifacts
11263 uses : actions/upload-artifact@v4
11364 with :
0 commit comments