From 6f298b10603f25e206953935b4d595c1ec77d6c4 Mon Sep 17 00:00:00 2001 From: FalcoGer <16250196+FalcoGer@users.noreply.github.com> Date: Fri, 19 Jan 2024 04:14:51 +0100 Subject: [PATCH] Create action for Uploading release.zip --- .github/workflows/dotnet-desktop.yml | 116 +++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 .github/workflows/dotnet-desktop.yml diff --git a/.github/workflows/dotnet-desktop.yml b/.github/workflows/dotnet-desktop.yml new file mode 100644 index 0000000..b6b0169 --- /dev/null +++ b/.github/workflows/dotnet-desktop.yml @@ -0,0 +1,116 @@ +# 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: Release + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + + build: + + strategy: + matrix: + configuration: [Release] # Debug, Release + + runs-on: windows-2019 # For a list of available runner types, refer to + # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on + + env: + Solution_Name: CoordinateConverter.sln # Replace with your solution name, i.e. MyWpfApp.sln. + Project_Directory: CoordinateConverter # Replace with the Wap project directory relative to the solution, i.e. MyWpfApp.Package. + Project_Path: CoordinateConverter/CoordinateConverter.csproj # Replace with the path to your Wap project, i.e. MyWpf.App.Package\MyWpfApp.Package.wapproj. + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + # Install the .NET Core workload + - name: Install .NET Core + uses: actions/setup-dotnet@v3 + with: + dotnet-version: 6.0.x + + # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild + - name: Setup MSBuild.exe + uses: microsoft/setup-msbuild@v1.0.2 + + - name: Extract version from tag + uses: damienaicheh/extract-version-from-tag-action@v1.1.0 + + # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild + - name: Setup MSBuild.exe + uses: microsoft/setup-msbuild@v1.0.2 + + # Restore the application to populate the obj folder with RuntimeIdentifiers + - name: Restore the Application + run: msbuild . /t:Restore /p:Configuration=$env:Configuration /p:Platform="Any CPU" /p:RestorePackagesConfig=true + env: + Configuration: ${{ matrix.configuration }} + + # Create the app package by building + - name: Build + run: msbuild Installer /t:Build /p:Configuration=$env:Configuration /p:Platform=AnyCPU /p:Version=$env:Major.$env:Minor.$env:Patch + env: + Configuration: ${{ matrix.configuration }} + + # Rename the Artifact + - name: Rename Release.zip + run: rename Release.zip Release-$env:Major-$env:Minor-$env:Patch.zip + + # create/update release with the artifact + # https://github.com/ncipollo/release-action/blob/main/README.md + - uses: ncipollo/release-action@v1 + with: + allowUpdates: true + artifactErrorsFailBuild: true + artifacts: ${{ env.Project_Directory }}\bin\${{matrix.configuration}}\en-US\Release-$env:Major-$env:Minor-$env:Patch.zip + name: "$env:Major.$env:Minor.$env:Patch" + body: "Automatically generated" + omitBodyDuringUpdate: true + omitDraftDuringUpdate: true + omitNameDuringUpdate: true + omitPrereleaseDuringUpdate: true + makeLatest: true + replacesArtifacts: true