Commit Graph

243 Commits

Author SHA1 Message Date
Jordan Dominion d5380c5cb9 Bunch of project cleanups and "tgstation-server" string deduping
- Move `Tgstation.Server.Host.Common.Constants` to `Tgstation.Server.Common`.
- Use `Tgstation.Server.Common.Constants.CanonicalPackageName` in strings everywhere where it makes sense.
- Add `SrcCommon.props` to dedupe more .csproj properties.
- Rename `TgsNugetNetVersion` to `TgsNugetNetFramework` and move to `Version.props`.
- Change Nugets packages' author to just `Jordan Dominion`.
- Fix name of wix extensions namespace.
- Update Octokit to `7.0.0`.
- Add missing documentation comment for `PackageReference`.
2023-07-03 22:07:05 -04:00
Jordan Dominion a00ef98655 Standardize AGPL-3.0 reference 2023-07-03 17:58:32 -04:00
Jordan Dominion 7350fbfff2 Add AppsAndFeaturesEntries to installer manifest 2023-07-03 17:20:37 -04:00
Jordan Dominion e771a369af Do not StartServices if TGS is unconfigured
- Cheeky workaround to pass winget validation
2023-07-03 17:02:58 -04:00
Jordan Dominion 2aada2892d Cleanup winget manifests + Fix attempts
- Specify `burn` for `InstallerType` rather than `wix`.
- Check for .NET core runtime, since it is actually required. I think this is biting us in the ass for `winget` validation.
2023-07-03 16:03:18 -04:00
Jordan Dominion cc06102a8b Improve winget manifest installer info 2023-07-03 14:13:30 -04:00
Jordan Dominion 210b07e9d7 Proper signing method for installer
- Also sign published service `.exe`s
2023-07-03 14:13:30 -04:00
Jordan Dominion 3bb064be1e We can't hash the unsigned installer for winget 2023-07-03 14:13:30 -04:00
Jordan Dominion e60bf12f87 Do not attempt winget (un)install validation
Let's get it right the first time and then let MS do it for us
2023-07-03 14:13:29 -04:00
Jordan Dominion 2607c6b8fa Fix elevation requirement 2023-07-02 18:26:47 -04:00
Jordan Dominion e8603c450b Be persistent with winget arguments
Also fix bracing in other .ps1
2023-07-02 18:26:43 -04:00
Jordan Dominion 609fea8fde Remove unused install banner 2023-07-02 08:45:02 -04:00
Jordan Dominion 04e9ff306f Add uninstall check to winget 2023-07-02 07:52:36 -04:00
Jordan Dominion ef4ef59cf3 Fix push_manifest.ps1's parameter and default hash 2023-07-02 07:52:35 -04:00
Jordan Dominion 352a65a1d1 libsystemd0 is not a hard dependency 2023-07-02 07:28:38 -04:00
Jordan Dominion d0d9e7b2ba Switch from .vdproj to .wixprojs
Wix is just better, it drives the fucking Visual Studio installer for gods' sakes. Thankfully, v4 is a whole lot better than v3 in that it's native dotnet tooling.

- Added ability to set base path for loading configuration files.
- Added Service command descriptions for help text.
- New `.exe` installer also installs dotnet dependencies.
- New `.msi` properly invokes configure, sets up and controls service, sends detach stop signal on upgrades, and uses ProgramData for configs with appropriate permissions.
- Remove .deb symlinks in favor of explicitly setting config directory.
- Adjust CI pipeline with new installer changes.
- Appropriately bump TGS migrator version.
2023-07-02 04:08:14 -04:00
Jordan Dominion e13aa79efe Add Wix dotnet-tools.json 2023-07-02 03:43:36 -04:00
Jordan Dominion 5d1e7bc27e Remove .NET 4.7.2 prereq from the installer 2023-06-28 20:48:16 -04:00
Jordan Dominion 5bf73b8ef1 Prevent Host and Host.Console projects from generating executables 2023-06-28 19:19:44 -04:00
Jordan Dominion bbc17a62cf Publish configure project with runtime identifier
Give it its own directory too because it's chonky now
2023-06-27 18:33:21 -04:00
Jordan Dominion f79777daec Add missing silent flag to uninstall 2023-06-26 13:15:04 -04:00
Jordan Dominion f26e770730 Cleanup configure app 2023-06-26 11:21:15 -04:00
Jordan Dominion b7ac1f6238 Fix stylecop applying to test projects 2023-06-26 10:23:08 -04:00
Jordan Dominion 69b51dfbfe Preconfigure during CI installs 2023-06-26 09:52:08 -04:00
Jordan Dominion ed0786ce65 Working winget push into deploy CI 2023-06-26 02:13:21 -04:00
Jordan Dominion 315a32ce73 Rename build_package.ps1 to build_msi.ps1 2023-06-26 00:12:54 -04:00
Jordan Dominion 3861d2db8d Disallow msi upgrades
See https://stackoverflow.com/a/14736573

Also set some additional .vdproj fields
2023-06-25 21:00:34 -04:00
Jordan Dominion 12e71119c5 Add missing restore to packaging script 2023-06-25 21:00:34 -04:00
Jordan Dominion 3d17597ddc We should now be implicitly upgradable in winget 2023-06-25 21:00:31 -04:00
Jordan Dominion 13d9a92abb Run configure app as winforms to be non-intrusive 2023-06-25 21:00:30 -04:00
Jordan Dominion 7fcc1e8208 Fix .vdproj ProductCode and ProductVersion
Also change installation folder name to just `tgstation-server`
2023-06-25 21:00:27 -04:00
Jordan Dominion a6c85366ae Add Windows service commands 128, 129, and 130
- 128 triggers a server shutdown.
- 129 and 130 are identical to SIGUSR1 and SIGUSR2 respectively, triggering a graceful shutdown and detaching shutdown respectively.
- These are implemented via pipes and are preferred to using the update path going forward. Should eventually replace the param entirely at the next possibility.
- New service params to detach and restart any running server as opposed to stopping entirely.
- Defer all service control to Service executable from Configure app.
- Console runner returns non-zero on error.
- Fix setting ACL of appsettings.Production.yml.
2023-06-25 21:00:26 -04:00
Jordan Dominion de7d93d218 Fix cd backup in build_package.ps1 2023-06-25 21:00:25 -04:00
Jordan Dominion 375895a5cd A bunch of .vdproj fixups
I can't read the diff because of this fucking project format
2023-06-25 12:37:09 -04:00
Jordan Dominion 4f0d3876e3 Set ACL info in configure script 2023-06-25 12:34:33 -04:00
Jordan Dominion ebadd12cc4 Use windows targeted net6.0 for configure project 2023-06-25 12:34:16 -04:00
Jordan Dominion 2760060969 dotnet commands here do not speed up the build 2023-06-25 12:33:19 -04:00
Jordan Dominion 1a472a4cf1 Add configure shortcut to start menu 2023-06-25 12:33:18 -04:00
Jordan Dominion cde647bc63 Fix .msi shortcut icon 2023-06-25 12:33:17 -04:00
Jordan Dominion 5202a79d81 Rename manifest.xml to uac_elevation_manifest.xml 2023-06-25 12:09:44 -04:00
Jordan Dominion 2c2797134d Fix .msi packaging failing due to non-existent dir 2023-06-25 10:35:32 -04:00
Jordan Dominion 8e0b8ce4eb Fix .deb build 2023-06-25 10:31:03 -04:00
Jordan Dominion 8614b07a9e Start service if configured during installation 2023-06-25 10:02:13 -04:00
Jordan Dominion e5858d02f4 Enable (roughly) upgrading the installation 2023-06-24 11:02:10 -04:00
Jordan Dominion 15a996f785 Add .msi variables README.md 2023-06-24 09:48:37 -04:00
Jordan Dominion 108e04d485 Rename -NoService configs to -NoFramework
Better represents of what they are
2023-06-24 09:39:04 -04:00
Jordan Dominion b2414fa92d Installer should now be x86 compatible 2023-06-24 09:32:18 -04:00
Jordan Dominion 55a7d656a9 Remove useless install folder 2023-06-24 09:29:25 -04:00
Jordan Dominion bc87686f97 Remove installer prequisites
- It's just a useless prompt
2023-06-24 09:28:23 -04:00
Jordan Dominion 8ee8baf897 Standalone .sln for .Msi project
Fixes it breaking all the other CI builds
2023-06-24 09:25:34 -04:00