Skip to content

Commit 5d0f2df

Browse files
authored
Add MSIX package support. (#75)
1 parent 440eba3 commit 5d0f2df

File tree

6 files changed

+93
-2
lines changed

6 files changed

+93
-2
lines changed

assets/logo-150.png

2.62 KB
Loading

assets/logo-44.png

894 Bytes
Loading

azure-pipelines.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,14 @@ stages:
299299
LICENSE.txt
300300
targetFolder: '$(Build.ArtifactStagingDirectory)/bin'
301301

302+
- task: CopyFiles@2
303+
displayName: Copy assets to output
304+
inputs:
305+
sourceFolder: '$(Build.SourcesDirectory)/assets'
306+
contents: |
307+
*.png
308+
targetFolder: '$(Build.ArtifactStagingDirectory)/assets'
309+
302310
- task: CopyFiles@2
303311
displayName: Copy symbols to output
304312
inputs:
@@ -397,6 +405,13 @@ stages:
397405
echo "Updated build.tag to $BUILD_TAG"
398406
displayName: 'Set environment variables'
399407
408+
- task: DotNetCoreCLI@2
409+
displayName: Install AzureSignTool
410+
inputs:
411+
command: 'custom'
412+
custom: 'tool'
413+
arguments: 'install --global azuresigntool'
414+
400415
- task: PowerShell@2
401416
displayName: 'Generate all packages'
402417
inputs:
@@ -408,6 +423,16 @@ stages:
408423
-BuildNumber $(build.version)
409424
workingDirectory: '$(System.DefaultWorkingDirectory)/r12f.rnp'
410425

426+
- task: PowerShell@2
427+
displayName: 'Sign packages with AzureSignTool'
428+
inputs:
429+
targetType: inline
430+
script: |
431+
Get-ChildItem ".\Releases\GithubReleases\*.msix" | ForEach-Object {
432+
AzureSignTool sign -du "$(RnpSigningURL)" -kvu "$(RnpSigningVaultURL)" -kvi "$(RnpSigningClientId)" -kvs "$(RnpSigningClientSecret)" -kvc "$(RnpSigningCertName)" -v $_
433+
}
434+
workingDirectory: '$(System.DefaultWorkingDirectory)/r12f.rnp'
435+
411436
- task: CopyFiles@2
412437
displayName: Copy packages to staging folder
413438
inputs:

build/pack/PackReleasePackages.ps1

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,55 +41,63 @@ function PackPerFlavorReleases() {
4141
"Target" = "i686-pc-windows-msvc";
4242
"PackZip" = $true;
4343
"PackTar" = $false;
44+
"PackMsix" = $true;
4445
"CopyDebian" = $false;
4546
};
4647
"windows.x64" = [PsCustomObject]@{
4748
"Root" = "Build.Build.windowsx64";
4849
"Target" = "x86_64-pc-windows-msvc";
4950
"PackZip" = $true;
5051
"PackTar" = $false;
52+
"PackMsix" = $true;
5153
"CopyDebian" = $false;
5254
};
5355
"windows.arm64" = [PsCustomObject]@{
5456
"Root" = "Build.Build.windowsarm64";
5557
"Target" = "aarch64-pc-windows-msvc";
5658
"PackZip" = $true;
5759
"PackTar" = $false;
60+
"PackMsix" = $true;
5861
"CopyDebian" = $false;
5962
};
6063
"linux.x86" = [PsCustomObject]@{
6164
"Root" = "Build.Build.linuxx86";
6265
"Target" = "i686-unknown-linux-gnu";
6366
"PackZip" = $false;
6467
"PackTar" = $true;
68+
"PackMsix" = $false;
6569
"CopyDebian" = $true;
6670
};
6771
"linux.x64" = [PsCustomObject]@{
6872
"Root" = "Build.Build.linuxx64";
6973
"Target" = "x86_64-unknown-linux-gnu";
7074
"PackZip" = $false;
7175
"PackTar" = $true;
76+
"PackMsix" = $false;
7277
"CopyDebian" = $true;
7378
};
7479
"linux.arm" = [PsCustomObject]@{
7580
"Root" = "Build.Build.linuxarm";
7681
"Target" = "arm-unknown-linux-gnueabi";
7782
"PackZip" = $false;
7883
"PackTar" = $true;
84+
"PackMsix" = $false;
7985
"CopyDebian" = $true;
8086
};
8187
"linux.arm64" = [PsCustomObject]@{
8288
"Root" = "Build.Build.linuxarm64";
8389
"Target" = "aarch64-unknown-linux-gnu";
8490
"PackZip" = $false;
8591
"PackTar" = $true;
92+
"PackMsix" = $false;
8693
"CopyDebian" = $true;
8794
};
8895
"macos.x64" = [PsCustomObject]@{
8996
"Root" = "Build.Build.macosx64";
9097
"Target" = "x86_64-apple-darwin";
9198
"PackZip" = $false;
9299
"PackTar" = $true;
100+
"PackMsix" = $false;
93101
"CopyDebian" = $false;
94102
};
95103
}
@@ -130,7 +138,25 @@ function PackPerFlavorReleases() {
130138
dotnet pack $nugetProjectRoot\rnp_nupkg.csproj -o .\Releases\NugetPackages
131139

132140
# Copy debian packages
133-
Copy-Item -Path .\$root\debian\* ".\Releases\DebianPackages" -Verbose -Force
141+
if ($settings.CopyDebian) {
142+
Copy-Item -Path .\$root\debian\* ".\Releases\DebianPackages" -Verbose -Force
143+
}
144+
145+
# Generate MSIX package
146+
if ($settings.PackMsix) {
147+
$msixProjectRoot = ".\Staging\MsixPackages\$flavor"
148+
Write-Host "Creating msix package under $msixProjectRoot"
149+
New-Item -ItemType Directory -Path "$msixProjectRoot" | Out-Null
150+
151+
Copy-Item -Path .\$root\bin\* $msixProjectRoot -Verbose -Force
152+
EvaluateTemplateFile ".\Build.Build.windowsx64\templates\msix\appxmanifest.xml" "$msixProjectRoot\appxmanifest.xml" $flavor $target
153+
EvaluateTemplateFile ".\Build.Build.windowsx64\templates\msix\appxmappings.txt" "$msixProjectRoot\appxmappings.txt" $flavor $target
154+
155+
New-Item -ItemType Directory -Path "$msixProjectRoot\images" | Out-Null
156+
Copy-Item -Path .\$root\assets\*.png "$msixProjectRoot\images" -Verbose -Force
157+
158+
& "C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\makeappx.exe" pack /m "$msixProjectRoot\appxmanifest.xml" /f "$msixProjectRoot\appxmappings.txt" /p ".\Releases\GithubReleases\rnp.$BuildTag.$flavor.msix"
159+
}
134160
}
135161
}
136162

@@ -194,7 +220,8 @@ function EvaluateTemplateFile($templateFile, $targetFile, $targetShortName, $tar
194220
}
195221

196222
function EvaluateTemplate($template, $targetShortName, $targetFullName) {
197-
return $template.Replace("{build_branch_name}", $BuildBranchName).Replace("{build_tag}", $BuildTag).Replace("{version}", $BuildNumber).Replace("{target_short}", $targetShortName).Replace("{target}", $targetFullName)
223+
$targetArch = ($targetShortName -split "\.")[1]
224+
return $template.Replace("{build_branch_name}", $BuildBranchName).Replace("{build_tag}", $BuildTag).Replace("{version}", $BuildNumber).Replace("{target_short}", $targetShortName).Replace("{target}", $targetFullName).Replace("{build_arch}", $targetArch)
198225
}
199226

200227
PackAllReleasePackages

build/templates/msix/appxmanifest.xml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Package
3+
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
4+
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
5+
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities">
6+
<Identity Name="R12f.R12f.Rnp" Version="{version}.0" Publisher="CN=Jinzhou Jiang, O=Jinzhou Jiang, L=Redmond, S=Washington, C=US" ProcessorArchitecture="{build_arch}" />
7+
<Properties>
8+
<DisplayName>Rnp</DisplayName>
9+
<PublisherDisplayName>r12f</PublisherDisplayName>
10+
<Description>A simple layer 4 ping tool for cloud.</Description>
11+
<Logo>images\logo.png</Logo>
12+
</Properties>
13+
<Resources>
14+
<Resource Language="en-us" />
15+
</Resources>
16+
<Dependencies>
17+
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17134.0" MaxVersionTested="10.0.19041.0" />
18+
</Dependencies>
19+
<Capabilities>
20+
<rescap:Capability Name="runFullTrust" />
21+
</Capabilities>
22+
<Applications>
23+
<Application Id="Rnp" Executable="rnp.exe" EntryPoint="Windows.FullTrustApplication">
24+
<uap:VisualElements
25+
DisplayName="Rnp"
26+
Description="A simple layer 4 ping tool for cloud."
27+
BackgroundColor="antiqueWhite"
28+
Square150x150Logo="images\logo-150.png"
29+
Square44x44Logo="images\logo-44.png" />
30+
</Application>
31+
</Applications>
32+
</Package>

build/templates/msix/appxmappings.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[Files]
2+
".\Staging\MsixPackages\{target_short}\rnp.exe" "rnp.exe"
3+
".\Staging\MsixPackages\{target_short}\README.md" "README.md"
4+
".\Staging\MsixPackages\{target_short}\LICENSE.txt" "LICENSE.txt"
5+
".\Staging\MsixPackages\{target_short}\images\logo.png" "images\logo.png"
6+
".\Staging\MsixPackages\{target_short}\images\logo-150.png" "images\logo-150.png"
7+
".\Staging\MsixPackages\{target_short}\images\logo-44.png" "images\logo-44.png"

0 commit comments

Comments
 (0)