mirror of
https://github.com/ClementTsang/bottom
synced 2024-11-26 22:20:18 +00:00
ci: update winget template + deploy for more info (#554)
Adds a `ProductCode`, `Scope`, and `Commands` field to the template, as well as additional changes to the deploy process to determine + fill in the `ProductCode` automatically.
This commit is contained in:
parent
bcbdc15b51
commit
8aa1303b3c
4 changed files with 38 additions and 1 deletions
2
.github/workflows/deployment.yml
vendored
2
.github/workflows/deployment.yml
vendored
|
@ -267,6 +267,8 @@ jobs:
|
||||||
if: matrix.triple.target == 'x86_64-pc-windows-msvc'
|
if: matrix.triple.target == 'x86_64-pc-windows-msvc'
|
||||||
run: |
|
run: |
|
||||||
python "./deployment/packager.py" ${{ env.RELEASE_VERSION }} "./deployment/windows/winget/winget.yaml.template" "Clement.bottom.yaml" "SHA256" "./bottom_x86_64_installer.msi"
|
python "./deployment/packager.py" ${{ env.RELEASE_VERSION }} "./deployment/windows/winget/winget.yaml.template" "Clement.bottom.yaml" "SHA256" "./bottom_x86_64_installer.msi"
|
||||||
|
$Code = powershell ./deployment/windows/winget/get_product_code.ps1 ./bottom_x86_64_installer.msi
|
||||||
|
python "./deployment/windows/winget/product_code.py" Clement.bottom.yaml $Code
|
||||||
|
|
||||||
- name: Upload winget file (Windows x86-64 MSVC)
|
- name: Upload winget file (Windows x86-64 MSVC)
|
||||||
if: matrix.triple.target == 'x86_64-pc-windows-msvc'
|
if: matrix.triple.target == 'x86_64-pc-windows-msvc'
|
||||||
|
|
11
deployment/windows/winget/get_product_code.ps1
Normal file
11
deployment/windows/winget/get_product_code.ps1
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
$path = $args[0]
|
||||||
|
|
||||||
|
$comObjWI = New-Object -ComObject WindowsInstaller.Installer
|
||||||
|
$MSIDatabase = $comObjWI.GetType().InvokeMember("OpenDatabase","InvokeMethod",$Null,$comObjWI,@($Path,0))
|
||||||
|
$Query = "SELECT Value FROM Property WHERE Property = 'ProductCode'"
|
||||||
|
$View = $MSIDatabase.GetType().InvokeMember("OpenView","InvokeMethod",$null,$MSIDatabase,($Query))
|
||||||
|
$View.GetType().InvokeMember("Execute", "InvokeMethod", $null, $View, $null)
|
||||||
|
$Record = $View.GetType().InvokeMember("Fetch","InvokeMethod",$null,$View,$null)
|
||||||
|
$Value = $Record.GetType().InvokeMember("StringData","GetProperty",$null,$Record,1)
|
||||||
|
|
||||||
|
echo $Value
|
20
deployment/windows/winget/product_code.py
Normal file
20
deployment/windows/winget/product_code.py
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
import sys
|
||||||
|
from string import Template
|
||||||
|
|
||||||
|
args = sys.argv
|
||||||
|
template_file_path = args[1]
|
||||||
|
product_code = args[2]
|
||||||
|
|
||||||
|
with open(template_file_path, "r") as template_file:
|
||||||
|
template = Template(template_file.read())
|
||||||
|
|
||||||
|
substitutes = dict()
|
||||||
|
substitutes["product_code"] = "'{}'".format(product_code)
|
||||||
|
substitute = template.safe_substitute(substitutes)
|
||||||
|
|
||||||
|
print("\n================== Generated package file ==================\n")
|
||||||
|
print(substitute)
|
||||||
|
print("\n============================================================\n")
|
||||||
|
|
||||||
|
with open(template_file_path, "w") as template_file:
|
||||||
|
template_file.write(substitute)
|
|
@ -11,11 +11,15 @@ Tags:
|
||||||
- terminal
|
- terminal
|
||||||
ShortDescription: Yet another cross-platform graphical process/system monitor.
|
ShortDescription: Yet another cross-platform graphical process/system monitor.
|
||||||
PackageUrl: https://github.com/ClementTsang/bottom
|
PackageUrl: https://github.com/ClementTsang/bottom
|
||||||
|
Commands:
|
||||||
|
- btm
|
||||||
Installers:
|
Installers:
|
||||||
- Architecture: x64
|
- Architecture: x64
|
||||||
InstallerUrl: https://github.com/ClementTsang/bottom/releases/download/$version/bottom_x86_64_installer.msi
|
InstallerUrl: https://github.com/ClementTsang/bottom/releases/download/$version/bottom_x86_64_installer.msi
|
||||||
InstallerSha256: $hash1
|
InstallerSha256: $hash1
|
||||||
|
ProductCode: $product_code
|
||||||
InstallerType: msi
|
InstallerType: msi
|
||||||
|
Scope: machine
|
||||||
PackageLocale: en-US
|
PackageLocale: en-US
|
||||||
ManifestType: singleton
|
ManifestType: singleton
|
||||||
ManifestVersion: 1.0.0
|
ManifestVersion: 1.0.0
|
Loading…
Reference in a new issue