Skip to content

Create dotnet-desktop.yml#2

Draft
cezary13k wants to merge 1 commit intovecerap:masterfrom
cezary13k:master
Draft

Create dotnet-desktop.yml#2
cezary13k wants to merge 1 commit intovecerap:masterfrom
cezary13k:master

Conversation

@cezary13k
Copy link

No description provided.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a GitHub Actions workflow for building .NET desktop applications. However, the workflow is a template designed for WPF/Windows Forms applications with MSIX packaging, which doesn't match the actual project structure. The repository contains a simple .NET console application (WinAppsBuilderList) without any desktop GUI components or Windows Application Packaging projects.

Changes:

  • Adds a new GitHub Actions workflow file for building, testing, signing, and packaging .NET applications
  • Configures matrix builds for Debug and Release configurations
  • Sets up steps for MSBuild, certificate signing, and MSIX package creation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +91 to +95
- name: Decode the pfx
run: |
$pfx_cert_byte = [System.Convert]::FromBase64String("${{ secrets.Base64_Encoded_Pfx }}")
$certificatePath = Join-Path -Path $env:Wap_Project_Directory -ChildPath GitHubActionsWorkflow.pfx
[IO.File]::WriteAllBytes("$certificatePath", $pfx_cert_byte)
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step attempts to decode a signing certificate that may not be configured in the repository secrets. Additionally, it references $env:Wap_Project_Directory which is set to the placeholder "your-wap-project-directory-name". This will fail since there is no Windows Application Packaging project in the repository. This entire signing workflow appears to be unnecessary for a simple console application.

Copilot uses AI. Check for mistakes.
Comment on lines +106 to +109
# Remove the pfx
- name: Remove the pfx
run: Remove-Item -path $env:Wap_Project_Directory\GitHubActionsWorkflow.pfx

Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step references the unconfigured placeholder $env:Wap_Project_Directory which will cause it to attempt to remove a non-existent path. Since there is no WAP project in the repository, this step should be removed.

Suggested change
# Remove the pfx
- name: Remove the pfx
run: Remove-Item -path $env:Wap_Project_Directory\GitHubActionsWorkflow.pfx

Copilot uses AI. Check for mistakes.
Comment on lines +110 to +115
# Upload the MSIX package: https://github.com/marketplace/actions/upload-a-build-artifact
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: MSIX Package
path: ${{ env.Wap_Project_Directory }}\AppPackages
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The artifact path references $env:Wap_Project_Directory which is set to the placeholder "your-wap-project-directory-name" and the AppPackages subdirectory that doesn't exist in this repository. This will result in no artifacts being uploaded or an error. Since this is a console application, the appropriate artifacts would be the build output from bin/Debug or bin/Release.

Suggested change
# Upload the MSIX package: https://github.com/marketplace/actions/upload-a-build-artifact
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: MSIX Package
path: ${{ env.Wap_Project_Directory }}\AppPackages
# Upload the build output: https://github.com/marketplace/actions/upload-a-build-artifact
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: Build Output
path: '**\bin\${{ matrix.configuration }}\**'

Copilot uses AI. Check for mistakes.

steps:
- name: Checkout
uses: actions/checkout@v4
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's an inconsistency in the actions/checkout version used across workflows. The existing rebase-enforce.yml workflow uses actions/checkout@v2, while this new workflow uses actions/checkout@v4. For consistency and to use the latest features, consider updating the older workflow to v4 as well, or document why different versions are used. Note that v2 is significantly outdated (released in 2020).

Copilot uses AI. Check for mistakes.

# Restore the application to populate the obj folder with RuntimeIdentifiers
- name: Restore the application
run: msbuild $env:Solution_Name /t:Restore /p:Configuration=$env:Configuration
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The variable $env:Solution_Name references a placeholder value "your-solution-name" that has not been configured. This will cause the restore step to fail. The actual solution path should be "src/WinAppsBuilderList.sln" based on the repository structure.

Copilot uses AI. Check for mistakes.
Comment on lines +98 to +104
- 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: Always
Appx_Bundle_Platforms: x86|x64
Appx_Package_Build_Mode: StoreUpload
Configuration: ${{ matrix.configuration }}
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step will fail because $env:Wap_Project_Path references the placeholder "your-wap-project-path" which has not been configured. Moreover, the repository does not contain a Windows Application Packaging project, making this entire step inappropriate for the current project structure which is a simple console application.

Copilot uses AI. Check for mistakes.
Comment on lines +110 to +114
# Upload the MSIX package: https://github.com/marketplace/actions/upload-a-build-artifact
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: MSIX Package
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The artifact name "MSIX Package" is misleading because this project doesn't produce MSIX packages. This is a simple console application that produces executable files. If artifacts are uploaded, the name should reflect what's actually being uploaded, such as "Build Output" or "Console Application Build".

Suggested change
# Upload the MSIX package: https://github.com/marketplace/actions/upload-a-build-artifact
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: MSIX Package
# Upload the build artifacts: https://github.com/marketplace/actions/upload-a-build-artifact
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: Build Output

Copilot uses AI. Check for mistakes.
# For a complete CI/CD sample to get started with GitHub Action workflows for Desktop Applications,
# refer to https://github.com/microsoft/github-actions-for-desktop-apps

name: .NET Core Desktop
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow name ".NET Core Desktop" and the comments describing "WPF or Windows Forms desktop application" are misleading. The actual project (WinAppsBuilderList) is a simple .NET console application, not a desktop GUI application. The workflow name should accurately reflect the project type, such as ".NET Console Application" or simply ".NET Build".

Copilot uses AI. Check for mistakes.
Comment on lines +6 to +37
# This workflow will build, test, sign and package a WPF or Windows Forms desktop application
# built on .NET Core.
# To learn how to migrate your existing application to .NET Core,
# refer to https://docs.microsoft.com/en-us/dotnet/desktop-wpf/migration/convert-project-from-net-framework
#
# To configure this workflow:
#
# 1. Configure environment variables
# GitHub sets default environment variables for every workflow run.
# Replace the variables relative to your project in the "env" section below.
#
# 2. Signing
# Generate a signing certificate in the Windows Application
# Packaging Project or add an existing signing certificate to the project.
# Next, use PowerShell to encode the .pfx file using Base64 encoding
# by running the following Powershell script to generate the output string:
#
# $pfx_cert = Get-Content '.\SigningCertificate.pfx' -Encoding Byte
# [System.Convert]::ToBase64String($pfx_cert) | Out-File 'SigningCertificate_Encoded.txt'
#
# Open the output file, SigningCertificate_Encoded.txt, and copy the
# string inside. Then, add the string to the repo as a GitHub secret
# and name it "Base64_Encoded_Pfx."
# For more information on how to configure your signing certificate for
# this workflow, refer to https://github.com/microsoft/github-actions-for-desktop-apps#signing
#
# Finally, add the signing certificate password to the repo as a secret and name it "Pfx_Key".
# See "Build the Windows Application Packaging project" below to see how the secret is used.
#
# For more information on GitHub Actions, refer to https://github.com/features/actions
# For a complete CI/CD sample to get started with GitHub Action workflows for Desktop Applications,
# refer to https://github.com/microsoft/github-actions-for-desktop-apps
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation comments (lines 1-37) describe a workflow for building, testing, signing and packaging WPF or Windows Forms desktop applications with MSIX packaging. However, this repository contains a simple console application without any GUI or packaging requirements. These comments are misleading and should be updated to reflect the actual purpose of the workflow, or the workflow should be redesigned to match the actual project structure.

Suggested change
# This workflow will build, test, sign and package a WPF or Windows Forms desktop application
# built on .NET Core.
# To learn how to migrate your existing application to .NET Core,
# refer to https://docs.microsoft.com/en-us/dotnet/desktop-wpf/migration/convert-project-from-net-framework
#
# To configure this workflow:
#
# 1. Configure environment variables
# GitHub sets default environment variables for every workflow run.
# Replace the variables relative to your project in the "env" section below.
#
# 2. Signing
# Generate a signing certificate in the Windows Application
# Packaging Project or add an existing signing certificate to the project.
# Next, use PowerShell to encode the .pfx file using Base64 encoding
# by running the following Powershell script to generate the output string:
#
# $pfx_cert = Get-Content '.\SigningCertificate.pfx' -Encoding Byte
# [System.Convert]::ToBase64String($pfx_cert) | Out-File 'SigningCertificate_Encoded.txt'
#
# Open the output file, SigningCertificate_Encoded.txt, and copy the
# string inside. Then, add the string to the repo as a GitHub secret
# and name it "Base64_Encoded_Pfx."
# For more information on how to configure your signing certificate for
# this workflow, refer to https://github.com/microsoft/github-actions-for-desktop-apps#signing
#
# Finally, add the signing certificate password to the repo as a secret and name it "Pfx_Key".
# See "Build the Windows Application Packaging project" below to see how the secret is used.
#
# For more information on GitHub Actions, refer to https://github.com/features/actions
# For a complete CI/CD sample to get started with GitHub Action workflows for Desktop Applications,
# refer to https://github.com/microsoft/github-actions-for-desktop-apps
# This workflow builds and tests a .NET application (for example, a console app)
# on pushes and pull requests.
#
# To configure this workflow:
#
# 1. Configure environment variables
# GitHub sets default environment variables for every workflow run.
# Replace or extend the variables in the "env" section below so they match
# your project's solution, project files, and target framework.
#
# 2. Build and test settings
# Adjust the "dotnet build" and "dotnet test" steps (if present) so they
# point to the correct solution or project and use the configurations
# you care about (Debug/Release, specific frameworks, etc.).
#
# 3. Branch and trigger configuration
# Update the "on" section to match the branches and events where you
# want this workflow to run.
#
# This file is a starting point for continuous integration (CI) for .NET.
# You can extend it with additional steps such as publishing artifacts,
# running code analysis, or deploying the application as needed.
#
# For more information on GitHub Actions, refer to:
# https://github.com/features/actions
# For general .NET continuous integration guidance, see:
# https://learn.microsoft.com/dotnet/devops/github-actions-dotnet

Copilot uses AI. Check for mistakes.
@vecerap
Copy link
Owner

vecerap commented Feb 17, 2026

@cezary13k what is purpose of this PR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants