feat(packaging): use msix for msvc builds

Signed-off-by: seth <getchoo@tuta.io>
This commit is contained in:
seth 2023-06-10 17:17:13 -04:00
parent 2cb22ad280
commit c3770a9a32
No known key found for this signature in database
GPG Key ID: D31BD0D494BBEE86
4 changed files with 88 additions and 6 deletions

View File

@ -428,14 +428,23 @@ jobs:
Get-ChildItem ${{ env.INSTALL_PORTABLE_DIR }} -Recurse | ForEach FullName | Resolve-Path -Relative | %{ $_.TrimStart('.\') } | %{ $_.TrimStart('${{ env.INSTALL_PORTABLE_DIR }}') } | %{ $_.TrimStart('\') } | Out-File -FilePath ${{ env.INSTALL_DIR }}/manifest.txt Get-ChildItem ${{ env.INSTALL_PORTABLE_DIR }} -Recurse | ForEach FullName | Resolve-Path -Relative | %{ $_.TrimStart('.\') } | %{ $_.TrimStart('${{ env.INSTALL_PORTABLE_DIR }}') } | %{ $_.TrimStart('\') } | Out-File -FilePath ${{ env.INSTALL_DIR }}/manifest.txt
- name: Package (Windows, installer) - name: Package (Windows MinGW-w64, installer)
if: runner.os == 'Windows' if: runner.os == 'Windows' && (matrix.msystem != '' || matrix.architecture == "win32")
run: | run: |
cd ${{ env.INSTALL_DIR }} cd ${{ env.INSTALL_DIR }}
makensis -NOCD "${{ github.workspace }}/${{ env.BUILD_DIR }}/program_info/win_install.nsi" makensis -NOCD "${{ github.workspace }}/${{ env.BUILD_DIR }}/program_info/win_install.nsi"
- name: Sign installer (Windows) - name: Package (Windows MSVC, installer)
if: runner.os == 'Windows' if: runner.os == 'Windows' && matrix.msystem == '' && matrix.architecture != "win32"
shell: pwsh
run: |
cd ${{ env.INSTALL_DIR }}
Copy-Item ..\program_info\prismlauncher_*x*.png .
Copy-Item ..\program_info\AppxManifest.xml .
makeappx.exe pack /v /h SHA256 /d . /p prismlauncher.msix
- name: Sign installer (Windows MinGW-w64/MSVC Legacy)
if: runner.os == 'Windows' && (matrix.msystem != '' || matrix.architecture == "win32")
run: | run: |
if (Get-Content ./codesign.pfx){ if (Get-Content ./codesign.pfx){
SignTool sign /fd sha256 /td sha256 /f codesign.pfx /p '${{ secrets.WINDOWS_CODESIGN_PASSWORD }}' /tr http://timestamp.digicert.com PrismLauncher-Setup.exe SignTool sign /fd sha256 /td sha256 /f codesign.pfx /p '${{ secrets.WINDOWS_CODESIGN_PASSWORD }}' /tr http://timestamp.digicert.com PrismLauncher-Setup.exe
@ -443,6 +452,15 @@ jobs:
":warning: Skipped code signing for Windows, as certificate was not present." >> $env:GITHUB_STEP_SUMMARY ":warning: Skipped code signing for Windows, as certificate was not present." >> $env:GITHUB_STEP_SUMMARY
} }
- name: Sign installer (Windows MSVC)
if: runner.os == 'Windows' && matrix.msystem == '' && matrix.architecture != "win32"
run: |
if (Get-Content ./codesign.pfx){
SignTool sign /fd sha256 /td sha256 /f codesign.pfx /p '${{ secrets.WINDOWS_CODESIGN_PASSWORD }}' /tr http://timestamp.digicert.com ${{ env.INSTALL_DIR }}/prismlauncher.msix
} else {
":warning: Skipped code signing for Windows, as certificate was not present." >> $env:GITHUB_STEP_SUMMARY
}
- name: Package (Linux) - name: Package (Linux)
if: runner.os == 'Linux' if: runner.os == 'Linux'
run: | run: |
@ -521,13 +539,20 @@ jobs:
name: PrismLauncher-${{ matrix.name }}-Portable-${{ env.VERSION }}-${{ inputs.build_type }} name: PrismLauncher-${{ matrix.name }}-Portable-${{ env.VERSION }}-${{ inputs.build_type }}
path: ${{ env.INSTALL_PORTABLE_DIR }}/** path: ${{ env.INSTALL_PORTABLE_DIR }}/**
- name: Upload installer (Windows) - name: Upload installer (Windows MinGW-w64/MSVC Legacy)
if: runner.os == 'Windows' if: runner.os == 'Windows' && (matrix.msystem != '' || matrix.architecture == "win32")
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: PrismLauncher-${{ matrix.name }}-Setup-${{ env.VERSION }}-${{ inputs.build_type }} name: PrismLauncher-${{ matrix.name }}-Setup-${{ env.VERSION }}-${{ inputs.build_type }}
path: PrismLauncher-Setup.exe path: PrismLauncher-Setup.exe
- name: Upload installer (Windows MSVC)
if: runner.os == 'Windows' && matrix.msystem == '' && matrix.architecture != "win32"
uses: actions/upload-artifact@v3
with:
name: PrismLauncher-${{ matrix.name }}-MSIX-${{ env.VERSION }}-${{ inputs.build_type }}
path: ${{ env.INSTALL_DIR }}/prismlauncher.msix
- name: Upload binary tarball (Linux, Qt 5) - name: Upload binary tarball (Linux, Qt 5)
if: runner.os == 'Linux' && matrix.qt_ver != 6 if: runner.os == 'Linux' && matrix.qt_ver != 6
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3

View File

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:virtualization="http://schemas.microsoft.com/appx/manifest/virtualization/windows10"
xmlns:desktop6="http://schemas.microsoft.com/appx/manifest/desktop/windows10/6"
IgnorableNamespaces="rescap virtualization desktop6">
<Identity Name="github.PrismLauncher.PrismLauncher" Version="7.0.0.0" Publisher="CN=PrismLauncher, O=PrismLauncher, L=MyCity, S=MyState, C=MyCountry" ProcessorArchitecture="x64" />
<Properties>
<DisplayName>Prism Launcher</DisplayName>
<PublisherDisplayName>Prism Launcher</PublisherDisplayName>
<Description>A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once</Description>
<Logo>prismlauncher_150x150.png</Logo>
</Properties>
<Resources>
<Resource Language="en-us" />
</Resources>
<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.19041.0" MaxVersionTested="10.0.22621.0" />
</Dependencies>
<Capabilities>
<Capability Name="internetClientServer"/>
<rescap:Capability Name="runFullTrust"/>
<rescap:Capability Name="unvirtualizedResources"/>
<DeviceCapability Name="humaninterfacedevice">
<!--
This allows for any
generic gaming device,
such as a controller or joystick
*and* any HID device.
-->
<Device Id="any">
<Function Type="usage:0004 *"/>
<Function Type="usage:0005 *"/>
<Function Type="usage:ffa0 0001"/>
</Device>
</DeviceCapability>
</Capabilities>
<Applications>
<Application
Id="PrismLauncher"
Executable="prismlauncher.exe"
uap10:RuntimeBehavior="win32App"
uap10:TrustLevel="mediumIL"
>
<uap:VisualElements
DisplayName="Prism Launcher"
Description="A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once"
Square150x150Logo="prismlauncher_150x150.png"
Square44x44Logo="prismlauncher_44x44.png"
BackgroundColor="transparent"
/>
</Application>
</Applications>
</Package>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB