Skip to content

Allow individual copies to fail #27

Allow individual copies to fail

Allow individual copies to fail #27

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# 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
name: .NET Core Desktop
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
jobs:
build:
strategy:
matrix:
configuration: [Release]
runs-on: windows-latest
env:
Solution_Name: LockscreenGif.sln
Project_Directory: LockscreenGif
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: File Regex Replace
uses: mingjun97/file-regex-replace@v1
with:
regex: 'Version="([0-9\.]*)"'
replacement: 'Version="0.${{ github.run_number }}.${{ github.run_attempt }}.0"'
include: Package.appxmanifest
# Install the .NET Core workload
- name: Install .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 8.0.x
# Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild
- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@v2
- name: Decode the pfx
run: |
$pfx_cert_byte = [System.Convert]::FromBase64String("${{ secrets.BASE64_ENCODED_PFX }}")
$certificatePath = "GitHubActionsWorkflow.pfx"
[IO.File]::WriteAllBytes("$certificatePath", $pfx_cert_byte)
- name: Publish the application
run: dotnet publish -c Release -p:PublishProfile=./Properties/PublishProfiles/FolderProfile.pubxml
# Remove the pfx
- name: Remove the pfx
run: Remove-Item -path GitHubActionsWorkflow.pfx
- name: Upload unpackaged app
uses: actions/upload-artifact@v2
with:
name: 'Unpackaged app ${{ github.run_number }}.${{ github.run_attempt }}'
path: './publish/'
# - name: Create GH release
# if: github.ref_name == 'main'
# uses: softprops/action-gh-release@v1
# with:
# draft: false
# prerelease: false
# name: '0.${{ github.run_number }}.${{ github.run_attempt }}.0'
# tag_name: 'v0.${{ github.run_number }}.${{ github.run_attempt }}.0'
# body: 'To install the MSIX version, you first have to add the certificate included in the MSIX (only need to do that once). To install the unpackaged version, you need to install the x64 WinAppRuntime Installer.'
# files: |
# WindowsAppSDKGallery/Packages/**/WindowsAppSDKGallery*.msix
# WindowsAppSDKGallery-unpackaged-*.zip
# fail_on_unmatched_files: true