Skip to content

screw you wam

screw you wam #4

Workflow file for this run

# This workflow will build, sign, and package a WinUI 3 MSIX desktop application
# built on .NET.
name: WoA32
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
strategy:
matrix:
configuration: [Release]
runs-on: windows-latest
env:
Solution_Name: UniSky.sln
Project_Name: UniSky
ProjectFile_Name: UniSky/UniSky.csproj
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Adjust Package Version
run: |
$appx = 'http://schemas.microsoft.com/appx/manifest/foundation/windows10'
$rescap = 'http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities'
$msbuild = 'http://schemas.microsoft.com/developer/msbuild/2003'
$epoch = (Get-Date) - (Get-Date -Day 1)
$file = (Resolve-Path "$env:Project_Name/Package.appxmanifest")
$xml = [System.Xml.XmlDocument]::new()
$xml.Load($file)
$nsmgr = [System.Xml.XmlNamespaceManager]::new($xml.NameTable)
$nsmgr.AddNamespace("appx", $appx);
$nsmgr.AddNamespace("rescap", $rescap);
# adjust package version
$node = $xml.GetElementsByTagName("Identity", $appx)[0]
$version = [System.Version]::Parse($node.GetAttribute("Version"))
$version = [System.Version]::new($version.Major, $version.Minor, $version.Build, $epoch.TotalMinutes);
$node.SetAttribute("Version", $version.ToString())
# adjust target versionk
$node = $xml.GetElementsByTagName("TargetDeviceFamily", $appx)[0]
$node.SetAttribute("MinVersion", "10.0.15035.0");
# remove confirmAppClose rescap
$node = $xml.SelectSingleNode('//rescap:Capability[@Name="confirmAppClose"]', $nsmgr)
$node.ParentNode.RemoveChild($node)
$xml.Save($file)
$file = (Resolve-Path "$env:ProjectFile_Name")
$xml.Load($file)
$nsmgr = [System.Xml.XmlNamespaceManager]::new($xml.NameTable)
$nsmgr.AddNamespace("msbuild", $msbuild);
$node = $xml.SelectSingleNode('//msbuild:PackageReference[@Include="Microsoft.UI.Xaml"]/msbuild:Version', $nsmgr)
$node.InnerXml = "2.7.4-prerelease.221117002"
$xml.Save($file)
# Decode the base 64 encoded pfx and save the Signing_Certificate
- name: Load Certificate
run: |
$pfx_cert_byte = [System.Convert]::FromBase64String("${{ secrets.BASE64_ENCODED_PFX }}")
$certificatePath = "GitHubActionsWorkflow.pfx"
[IO.File]::WriteAllBytes("$env:Project_Name/$certificatePath", $pfx_cert_byte)
# Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild
- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@v2
# Restore the application to populate the obj folder with RuntimeIdentifiers
- name: Restore NuGet Packages
run: msbuild $env:Solution_Name /t:Restore /p:Configuration=$env:Configuration /p:Platform=ARM
env:
Configuration: ${{ matrix.configuration }}
# Create the app package by building and packaging the project
- name: Build App Packages
run: msbuild $env:ProjectFile_Name /p:Configuration=$env:Configuration /p:Platform=ARM /p:SourceRevisionBranch="$env:Head_Ref-woa32" /p:SourceRevisionCommit="$($env:Sha.Substring(0, 7))" /p:UapAppxPackageBuildMode=$env:Appx_Package_Build_Mode /p:AppxBundle=$env:Appx_Bundle /p:AppxBundlePlatforms="ARM" /p:PackageCertificateKeyFile=GitHubActionsWorkflow.pfx /p:AppxPackageDir="$env:Appx_Package_Dir" /p:GenerateAppxPackageOnBuild=true
env:
Appx_Bundle: Always
Appx_Package_Build_Mode: SideloadOnly
Appx_Package_Dir: Packages\
Configuration: ${{ matrix.configuration }}
Head_Ref: ${{ github.head_ref }}
Sha: ${{ github.sha }}
# Remove the pfx
- name: Cleanup
run: Remove-Item -path UniSky/GitHubActionsWorkflow.pfx
# Upload the MSIX package: https://github.com/marketplace/actions/upload-a-build-artifact
- name: Upload Appx Package
uses: actions/upload-artifact@v4
with:
name: AppxPackage-${{ matrix.configuration }}
path: |
${{ env.Project_Name }}\\Packages