mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-07-18 11:34:46 +01:00
Working winget push into deploy CI
This commit is contained in:
@@ -21,6 +21,9 @@ env:
|
||||
TGS_DOTNET_VERSION: 6.0.x
|
||||
TGS_TEST_GITHUB_TOKEN: ${{ secrets.LIVE_TESTS_TOKEN }}
|
||||
TGS_RELEASE_NOTES_TOKEN: ${{ secrets.DEV_PUSH_TOKEN }}
|
||||
WINGET_PUSH_TOKEN: ${{ secrets.DEV_PUSH_TOKEN }}
|
||||
PACKAGING_KEYGRIP: ${{ vars.PACKAGING_KEYGRIP }}
|
||||
PACKAGING_PRIVATE_KEY_PASSPHRASE: ${{ secrets.PACKAGING_PRIVATE_KEY_PASSPHRASE }}
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
concurrency:
|
||||
@@ -899,9 +902,6 @@ jobs:
|
||||
ref: "refs/pull/${{ github.event.number }}/merge"
|
||||
|
||||
- name: Execute Build Script
|
||||
env:
|
||||
PACKAGING_KEYGRIP: ${{ vars.PACKAGING_KEYGRIP }}
|
||||
PACKAGING_PRIVATE_KEY_PASSPHRASE: ${{ secrets.PACKAGING_PRIVATE_KEY_PASSPHRASE }}
|
||||
run: sudo -E build/package/deb/build_package.sh
|
||||
|
||||
- name: Parse TGS version
|
||||
@@ -964,6 +964,9 @@ jobs:
|
||||
with:
|
||||
ref: "refs/pull/${{ github.event.number }}/merge"
|
||||
|
||||
- name: Validate winget Manifest
|
||||
run: winget validate --manifest build/package/winget/manifest
|
||||
|
||||
- name: Execute Build Script
|
||||
shell: powershell
|
||||
run: build/package/winget/build_msi.ps1
|
||||
@@ -1333,3 +1336,36 @@ jobs:
|
||||
- name: Trigger tgstation-ppa workflow
|
||||
run: |
|
||||
curl -XPOST -u "${{ vars.DEV_PUSH_USERNAME }}:${{ secrets.DEV_PUSH_TOKEN }}" -H "Accept: application/vnd.github.everest-preview+json" -H "Content-Type: application/json" https://api.github.com/repos/tgstation/tgstation-ppa/actions/workflows/add_tgs_version.yml/dispatches --data '{"ref":"main","inputs":{"tgs_semver": "${{ env.TGS_VERSION }}"}}'
|
||||
|
||||
deploy-winget:
|
||||
name: Deploy TGS (winget)
|
||||
needs: deploy-tgs
|
||||
if: "!(cancelled() || failure()) && needs.deploy-tgs.result == 'success'"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Setup dotnet
|
||||
uses: actions/setup-dotnet@v2
|
||||
with:
|
||||
dotnet-version: ${{ env.TGS_DOTNET_VERSION }}
|
||||
|
||||
- name: Install wingetcreate
|
||||
run: winget install wingetcreate
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Build ReleaseNotes
|
||||
run: dotnet build -c Release --project tools/ReleaseNotes
|
||||
|
||||
- name: Retrieve .msi
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: packaging-windows
|
||||
path: packaging-windows
|
||||
|
||||
- name: Execute Push Script
|
||||
shell: powershell
|
||||
run: build/package/winget/push_manifest.ps1 -MsiPath packaging-windows/tgstation-server.msi
|
||||
|
||||
- name: Run ReleaseNotes with --link-winget
|
||||
run: dotnet run -c Release --project tools/ReleaseNotes --link-winget ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||||
|
||||
@@ -4,24 +4,26 @@ Remove-Item -Recurse -Force -ErrorAction SilentlyContinue packaging
|
||||
|
||||
git worktree remove -f packaging
|
||||
|
||||
$ErrorActionPreference="Stop"
|
||||
|
||||
git worktree add -f packaging $currentCommit
|
||||
cd packaging
|
||||
Remove-Item -Recurse -Force .git
|
||||
|
||||
dotnet restore
|
||||
|
||||
[XML]$versionXML = Get-Content build/Version.props
|
||||
[XML]$versionXML = Get-Content build/Version.props -ErrorAction Stop
|
||||
|
||||
$tgsVersion = $versionXML.Project.PropertyGroup.TgsCoreVersion
|
||||
|
||||
cd build/package/winget
|
||||
|
||||
$devVersion = '0.22.475'
|
||||
|
||||
(Get-Content Tgstation.Server.Host.Service.Msi/Tgstation.Server.Host.Service.Msi.vdproj).Replace($devVersion, $tgsVersion) | Set-Content Tgstation.Server.Host.Service.Msi/Tgstation.Server.Host.Service.Msi.vdproj
|
||||
(Get-Content Tgstation.Server.Host.Service.Msi/Tgstation.Server.Host.Service.Msi.vdproj -ErrorAction Stop).Replace($devVersion, $tgsVersion) | Set-Content Tgstation.Server.Host.Service.Msi/Tgstation.Server.Host.Service.Msi.vdproj -ErrorAction Stop
|
||||
|
||||
# We make _some_ assumptions
|
||||
DevEnv installer.sln /Project Tgstation.Server.Host.Service.Msi/Tgstation.Server.Host.Service.Msi.vdproj /build Release
|
||||
if (-Not $?) {
|
||||
exit $lastexitcode
|
||||
}
|
||||
|
||||
cd ../../../..
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.4.0.schema.json
|
||||
|
||||
PackageIdentifier: Tgstation.Server
|
||||
PackageVersion: 0.0.0 # Set before publish by wingetcreate
|
||||
PackageVersion: 0.22.475 # Set before publish by push_manifest.ps1
|
||||
Installers:
|
||||
- InstallerUrl: https://github.com/tgstation/tgstation-server/releases/download/tgstation-server-v0.0.0/tgstation-server.msi # Set before publish by wingetcreate
|
||||
- InstallerUrl: https://github.com/tgstation/tgstation-server/releases/download/tgstation-server-v0.22.475/tgstation-server.msi # Set before publish by push_manifest.ps1
|
||||
InstallerLocale: en-US
|
||||
Architecture: x86
|
||||
InstallerType: msi
|
||||
Scope: machine
|
||||
InstallerSha256: F749672C1BDBAC8CD8AEF7352B97E54C21CF389D798D0ED245CA75EC72521460
|
||||
InstallerSha256: F749672C1BDBAC8CD8AEF7352B97E54C21CF389D798D0ED245CA75EC72521460 # Set before publish by push_manifest.ps1
|
||||
InstallModes:
|
||||
- interactive
|
||||
- silent
|
||||
@@ -19,7 +19,6 @@ Installers:
|
||||
UnsupportedOSArchitectures:
|
||||
- arm
|
||||
- arm64
|
||||
ElevationRequirement: elevationRequired
|
||||
Dependencies:
|
||||
PackageDependencies:
|
||||
- PackageIdentifier: Microsoft.DotNet.AspNetCore.6
|
||||
|
||||
@@ -2,11 +2,20 @@
|
||||
# yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.4.0.schema.json
|
||||
|
||||
PackageIdentifier: Tgstation.Server
|
||||
PackageVersion: 0.0.0 # Set before publish by wingetcreate
|
||||
PackageVersion: 0.22.475 # Set before publish by push_manifest.ps1
|
||||
PackageLocale: en-US
|
||||
Publisher: /tg/station 13
|
||||
PublisherUrl: https://github.com/tgstation/tgstation-server
|
||||
PublisherSupportUrl: https://github.com/tgstation/tgstation-server/discussions/categories/q-a
|
||||
Author: Dominion/Cyberboss
|
||||
PackageName: tgstation-server
|
||||
License: AGPL-3.0
|
||||
ShortDescription: A production scale tool for BYOND server management
|
||||
Moniker: tgstation-server
|
||||
Documentations:
|
||||
- DocumentLabel: README.md
|
||||
DocumentUrl: https://github.com/tgstation/tgstation-server/blob/tgstation-server-v0.22.475/README.md
|
||||
ReleaseNotesUrl: https://github.com/tgstation/tgstation-server/releases/tag/tgstation-server-v0.22.475
|
||||
PurchaseUrl: https://github.com/sponsors/Cyberboss
|
||||
ManifestType: defaultLocale
|
||||
ManifestVersion: 1.4.0
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.4.0.schema.json
|
||||
|
||||
PackageIdentifier: Tgstation.Server
|
||||
PackageVersion: 0.0.0 # Set before publish by wingetcreate
|
||||
PackageVersion: 0.22.475 # Set before publish by push_manifest.ps1
|
||||
DefaultLocale: en-US
|
||||
ManifestType: version
|
||||
ManifestVersion: 1.4.0
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
param(
|
||||
[string]$MsiPath = 'packaging/build/package/winget/Tgstation.Server.Host.Service.Msi/Release/tgstation-server.msi'
|
||||
)
|
||||
|
||||
$ErrorActionPreference="Stop"
|
||||
|
||||
[XML]$versionXML = Get-Content build/Version.props -ErrorAction Stop
|
||||
|
||||
$tgsVersion = $versionXML.Project.PropertyGroup.TgsCoreVersion
|
||||
|
||||
$installerHash = Get-FileHash -Path $MsiPath -ErrorAction Stop # SHA256 is the default
|
||||
|
||||
cd build/package/winget/manifest
|
||||
|
||||
$devHash = 'F749672C1BDBAC8CD8AEF7352B97E54C21CF389D798D0ED245CA75EC72521460'
|
||||
$devVersion = '0.22.475'
|
||||
$devReleaseDate = '2023-06-24'
|
||||
$releaseDate = Get-Date -format "yyyy-MM-dd"
|
||||
|
||||
(Get-Content Tgstation.Server.installer.yaml -ErrorAction Stop).Replace($devHash, $installerHash.Hash).Replace($devReleaseDate, $releaseDate).Replace($devVersion, $tgsVersion) | Set-Content Tgstation.Server.installer.yaml -ErrorAction Stop
|
||||
(Get-Content Tgstation.Server.locale.en-US.yaml -ErrorAction Stop).Replace($devVersion, $tgsVersion) | Set-Content Tgstation.Server.locale.en-US.yaml -ErrorAction Stop
|
||||
(Get-Content Tgstation.Server.yaml -ErrorAction Stop).Replace($devVersion, $tgsVersion) | Set-Content Tgstation.Server.yaml -ErrorAction Stop
|
||||
|
||||
winget validate --manifest .
|
||||
if (-Not $?) {
|
||||
exit $lastexitcode
|
||||
}
|
||||
|
||||
# I know this is late, but we actually need the package online to install it
|
||||
winget install -m . -h --disable-interactivity
|
||||
if (-Not $?) {
|
||||
exit $lastexitcode
|
||||
}
|
||||
|
||||
wingetcreate submit -t $Env:WINGET_PUSH_TOKEN .
|
||||
if (-Not $?) {
|
||||
exit $lastexitcode
|
||||
}
|
||||
|
||||
cd ../../../..
|
||||
@@ -237,6 +237,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "winget", "winget", "{506B90
|
||||
build\package\winget\installer.sln = build\package\winget\installer.sln
|
||||
build\package\winget\build_msi.ps1 = build\package\winget\build_msi.ps1
|
||||
build\package\winget\install_banner.jpg = build\package\winget\install_banner.jpg
|
||||
build\package\winget\push_manifest.ps1 = build\package\winget\push_manifest.ps1
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "manifest", "manifest", "{3F141E03-6ABB-46A8-AA24-1B4B6814E58F}"
|
||||
|
||||
Reference in New Issue
Block a user