From 20c882c96cf7af5b37b64e65c608aeb33988d5fd Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Thu, 16 Nov 2023 23:05:15 -0500 Subject: [PATCH 1/5] Fix `BroadcastMessage` controller checks --- .../Controllers/DreamDaemonController.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Tgstation.Server.Host/Controllers/DreamDaemonController.cs b/src/Tgstation.Server.Host/Controllers/DreamDaemonController.cs index 3c946af2e0..8e57d022c5 100644 --- a/src/Tgstation.Server.Host/Controllers/DreamDaemonController.cs +++ b/src/Tgstation.Server.Host/Controllers/DreamDaemonController.cs @@ -216,7 +216,7 @@ namespace Tgstation.Server.Host.Controllers || CheckModified(x => x.Visibility, DreamDaemonRights.SetVisibility) || (model.SoftRestart.HasValue && !AuthenticationContext.InstancePermissionSet.DreamDaemonRights.Value.HasFlag(DreamDaemonRights.SoftRestart)) || (model.SoftShutdown.HasValue && !AuthenticationContext.InstancePermissionSet.DreamDaemonRights.Value.HasFlag(DreamDaemonRights.SoftShutdown)) - || (model.BroadcastMessage != null && !AuthenticationContext.InstancePermissionSet.DreamDaemonRights.Value.HasFlag(DreamDaemonRights.BroadcastMessage)) + || (!String.IsNullOrWhiteSpace(model.BroadcastMessage) && !AuthenticationContext.InstancePermissionSet.DreamDaemonRights.Value.HasFlag(DreamDaemonRights.BroadcastMessage)) || CheckModified(x => x.StartupTimeout, DreamDaemonRights.SetStartupTimeout) || CheckModified(x => x.HealthCheckSeconds, DreamDaemonRights.SetHealthCheckInterval) || CheckModified(x => x.DumpOnHealthCheckRestart, DreamDaemonRights.CreateDump) @@ -231,7 +231,7 @@ namespace Tgstation.Server.Host.Controllers async instance => { var watchdog = instance.Watchdog; - if (model.BroadcastMessage != null + if (!String.IsNullOrWhiteSpace(model.BroadcastMessage) && !await watchdog.Broadcast(model.BroadcastMessage, cancellationToken)) return Conflict(new ErrorMessageResponse(ErrorCode.BroadcastFailure)); From 3bd78163c76196dcfc61ad43ff5e66a9a6e42e60 Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Thu, 16 Nov 2023 23:05:46 -0500 Subject: [PATCH 2/5] Update webpanel version --- build/ControlPanelVersion.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ControlPanelVersion.props b/build/ControlPanelVersion.props index 559fd9eeac..d7783648cb 100644 --- a/build/ControlPanelVersion.props +++ b/build/ControlPanelVersion.props @@ -1,6 +1,6 @@ - 4.27.0 + 5.1.0 From 17bda5ef486fedada83cc880d2ad66c500194460 Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Thu, 16 Nov 2023 23:08:54 -0500 Subject: [PATCH 3/5] Standardize naming to "Webpanel" --- build/Dockerfile | 2 +- build/Version.props | 2 +- ...ControlPanelVersion.props => WebpanelVersion.props} | 2 +- src/Tgstation.Server.Host/Core/Application.cs | 2 +- .../Properties/MasterVersionsAttribute.cs | 8 ++++---- src/Tgstation.Server.Host/Tgstation.Server.Host.csproj | 8 ++++---- tests/Tgstation.Server.Tests/TestVersions.cs | 4 ++-- tgstation-server.sln | 2 +- tools/Tgstation.Server.ReleaseNotes/Program.cs | 10 +++++----- 9 files changed, 20 insertions(+), 20 deletions(-) rename build/{ControlPanelVersion.props => WebpanelVersion.props} (80%) diff --git a/build/Dockerfile b/build/Dockerfile index 5c7c7bd05a..a65df7defe 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -24,7 +24,7 @@ WORKDIR /repo/build COPY build/Common.props Common.props COPY build/NugetCommon.props NugetCommon.props COPY build/Version.props Version.props -COPY build/ControlPanelVersion.props ControlPanelVersion.props +COPY build/WebpanelVersion.props WebpanelVersion.props COPY build/SrcCommon.props SrcCommon.props WORKDIR /repo/src/Tgstation.Server.Host diff --git a/build/Version.props b/build/Version.props index 81ddc262f7..df4b800ca1 100644 --- a/build/Version.props +++ b/build/Version.props @@ -1,7 +1,7 @@ - + 5.17.3 4.7.1 diff --git a/build/ControlPanelVersion.props b/build/WebpanelVersion.props similarity index 80% rename from build/ControlPanelVersion.props rename to build/WebpanelVersion.props index d7783648cb..3e3a8aa08c 100644 --- a/build/ControlPanelVersion.props +++ b/build/WebpanelVersion.props @@ -1,6 +1,6 @@ - 5.1.0 + 5.1.0 diff --git a/src/Tgstation.Server.Host/Core/Application.cs b/src/Tgstation.Server.Host/Core/Application.cs index a1cdabec96..41effa0094 100644 --- a/src/Tgstation.Server.Host/Core/Application.cs +++ b/src/Tgstation.Server.Host/Core/Application.cs @@ -558,7 +558,7 @@ namespace Tgstation.Server.Host.Core logger.LogTrace("Configuration version: {configVersion}", GeneralConfiguration.CurrentConfigVersion); logger.LogTrace("DMAPI Interop version: {interopVersion}", DMApiConstants.InteropVersion); if (controlPanelConfiguration.Enable) - logger.LogTrace("Web control panel version: {webCPVersion}", MasterVersionsAttribute.Instance.RawControlPanelVersion); + logger.LogTrace("Webpanel version: {webCPVersion}", MasterVersionsAttribute.Instance.RawWebpanelVersion); logger.LogDebug("Starting hosting on port {httpApiPort}...", serverPortProvider.HttpApiPort); } diff --git a/src/Tgstation.Server.Host/Properties/MasterVersionsAttribute.cs b/src/Tgstation.Server.Host/Properties/MasterVersionsAttribute.cs index c9bfed3eca..d6461713bb 100644 --- a/src/Tgstation.Server.Host/Properties/MasterVersionsAttribute.cs +++ b/src/Tgstation.Server.Host/Properties/MasterVersionsAttribute.cs @@ -29,7 +29,7 @@ namespace Tgstation.Server.Host.Properties /// /// The of the control panel version built. /// - public string RawControlPanelVersion { get; } + public string RawWebpanelVersion { get; } /// /// The of the control panel version built. @@ -46,19 +46,19 @@ namespace Tgstation.Server.Host.Properties /// /// The value of . /// The value of . - /// The value of . + /// The value of . /// The value of . /// The value of . public MasterVersionsAttribute( string rawConfigurationVersion, string rawInteropVersion, - string rawControlPanelVersion, + string rawWebpanelVersion, string rawHostWatchdogVersion, string rawMariaDBRedistVersion) { RawConfigurationVersion = rawConfigurationVersion ?? throw new ArgumentNullException(nameof(rawConfigurationVersion)); RawInteropVersion = rawInteropVersion ?? throw new ArgumentNullException(nameof(rawInteropVersion)); - RawControlPanelVersion = rawControlPanelVersion ?? throw new ArgumentNullException(nameof(rawControlPanelVersion)); + RawWebpanelVersion = rawWebpanelVersion ?? throw new ArgumentNullException(nameof(rawWebpanelVersion)); RawHostWatchdogVersion = rawHostWatchdogVersion ?? throw new ArgumentNullException(nameof(rawHostWatchdogVersion)); RawMariaDBRedistVersion = rawMariaDBRedistVersion ?? throw new ArgumentNullException(nameof(rawMariaDBRedistVersion)); } diff --git a/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj b/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj index 3c5ace62ae..bcca6637c3 100644 --- a/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj +++ b/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj @@ -22,17 +22,17 @@ $(DefineConstants);NO_WEBPANEL - + - + - + @@ -47,7 +47,7 @@ <_Parameter1>$(TgsConfigVersion) <_Parameter2>$(TgsInteropVersion) - <_Parameter3>$(TgsControlPanelVersion) + <_Parameter3>$(TgsWebpanelVersion) <_Parameter4>$(TgsHostWatchdogVersion) <_Parameter5>$(TgsMariaDBRedistVersion) diff --git a/tests/Tgstation.Server.Tests/TestVersions.cs b/tests/Tgstation.Server.Tests/TestVersions.cs index 41c48a1196..a87b47b2b1 100644 --- a/tests/Tgstation.Server.Tests/TestVersions.cs +++ b/tests/Tgstation.Server.Tests/TestVersions.cs @@ -284,11 +284,11 @@ namespace Tgstation.Server.Tests [TestMethod] public void TestControlPanelVersion() { - var doc = XDocument.Load("../../../../../build/ControlPanelVersion.props"); + var doc = XDocument.Load("../../../../../build/WebpanelVersion.props"); var project = doc.Root; var controlPanelXmlNamespace = project.GetDefaultNamespace(); var controlPanelVersionsPropertyGroup = project.Elements().First(x => x.Name == controlPanelXmlNamespace + "PropertyGroup"); - var versionString = controlPanelVersionsPropertyGroup.Element(controlPanelXmlNamespace + "TgsControlPanelVersion").Value; + var versionString = controlPanelVersionsPropertyGroup.Element(controlPanelXmlNamespace + "TgsWebpanelVersion").Value; Assert.IsNotNull(versionString); Assert.IsTrue(Version.TryParse(versionString, out var expected)); diff --git a/tgstation-server.sln b/tgstation-server.sln index 36d9027e9d..ce57c2ea30 100644 --- a/tgstation-server.sln +++ b/tgstation-server.sln @@ -26,7 +26,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{6FF654E6 build\BuildDox.ps1 = build\BuildDox.ps1 build\ci.runsettings = build\ci.runsettings build\Common.props = build\Common.props - build\ControlPanelVersion.props = build\ControlPanelVersion.props build\Dockerfile = build\Dockerfile build\GenerateMigrations.sh = build\GenerateMigrations.sh build\logo.svg = build\logo.svg @@ -39,6 +38,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{6FF654E6 build\tgstation-server.service = build\tgstation-server.service build\uac_elevation_manifest.xml = build\uac_elevation_manifest.xml build\Version.props = build\Version.props + build\WebpanelVersion.props = build\WebpanelVersion.props EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tgstation.Server.Api", "src\Tgstation.Server.Api\Tgstation.Server.Api.csproj", "{8B4A208D-A48A-4A5D-8B94-E2661138865D}" diff --git a/tools/Tgstation.Server.ReleaseNotes/Program.cs b/tools/Tgstation.Server.ReleaseNotes/Program.cs index 21bdbc1bfa..79b594e505 100644 --- a/tools/Tgstation.Server.ReleaseNotes/Program.cs +++ b/tools/Tgstation.Server.ReleaseNotes/Program.cs @@ -223,7 +223,7 @@ namespace Tgstation.Server.ReleaseNotes string prefix; const string PropsPath = "build/Version.props"; - const string ControlPanelPropsPath = "build/ControlPanelVersion.props"; + const string ControlPanelPropsPath = "build/WebpanelVersion.props"; var doc = XDocument.Load(PropsPath); var project = doc.Root; @@ -246,7 +246,7 @@ namespace Tgstation.Server.ReleaseNotes var configVersion = Version.Parse(versionsPropertyGroup.Element(xmlNamespace + "TgsConfigVersion").Value); var dmApiVersion = Version.Parse(versionsPropertyGroup.Element(xmlNamespace + "TgsDmapiVersion").Value); var interopVersion = Version.Parse(versionsPropertyGroup.Element(xmlNamespace + "TgsInteropVersion").Value); - var webControlVersion = Version.Parse(controlPanelVersionsPropertyGroup.Element(controlPanelXmlNamespace + "TgsControlPanelVersion").Value); + var webControlVersion = Version.Parse(controlPanelVersionsPropertyGroup.Element(controlPanelXmlNamespace + "TgsWebpanelVersion").Value); var hostWatchdogVersion = Version.Parse(versionsPropertyGroup.Element(xmlNamespace + "TgsHostWatchdogVersion").Value); if (webControlVersion.Major == 0) @@ -608,14 +608,14 @@ namespace Tgstation.Server.ReleaseNotes dict.Add(Component.NugetApi, Parse("TgsApiLibraryVersion")); dict.Add(Component.NugetClient, Parse("TgsClientVersion")); - var webVersion = Parse("TgsControlPanelVersion"); + var webVersion = Parse("TgsWebpanelVersion"); if (webVersion != null) { dict.Add(Component.WebControlPanel, webVersion); } else { - var controlPanelVersionBytes = await RLR(() => client.Repository.Content.GetRawContentByRef(RepoOwner, RepoName, "build/ControlPanelVersion.props", mergeCommit)); + var controlPanelVersionBytes = await RLR(() => client.Repository.Content.GetRawContentByRef(RepoOwner, RepoName, "build/WebpanelVersion.props", mergeCommit)); using (var ms = new MemoryStream(controlPanelVersionBytes)) doc = XDocument.Load(ms); @@ -623,7 +623,7 @@ namespace Tgstation.Server.ReleaseNotes project = doc.Root; var controlPanelXmlNamespace = project.GetDefaultNamespace(); var controlPanelVersionsPropertyGroup = project.Elements().First(x => x.Name == controlPanelXmlNamespace + "PropertyGroup"); - dict.Add(Component.WebControlPanel, Version.Parse(controlPanelVersionsPropertyGroup.Element(controlPanelXmlNamespace + "TgsControlPanelVersion").Value)); + dict.Add(Component.WebControlPanel, Version.Parse(controlPanelVersionsPropertyGroup.Element(controlPanelXmlNamespace + "TgsWebpanelVersion").Value)); } } From 682d954262a9aa0367799d9a12384b170440a3a4 Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Thu, 16 Nov 2023 23:09:28 -0500 Subject: [PATCH 4/5] Fix Windows Live tests always succeeding --- .github/workflows/ci-pipeline.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-pipeline.yml b/.github/workflows/ci-pipeline.yml index 82252adb17..4439daea55 100644 --- a/.github/workflows/ci-pipeline.yml +++ b/.github/workflows/ci-pipeline.yml @@ -468,11 +468,11 @@ jobs: sleep 10 set +e test_output=$(dotnet test -c ${{ matrix.configuration }} --no-build --filter TestCategory=RequiresDatabase --logger "GitHubActions;summary.includePassedTests=true;summary.includeSkippedTests=true" --collect:"XPlat Code Coverage" --settings ../../build/ci.runsettings --results-directory ../../TestResults) - succeeded=$? + retval=$? set -e cd ../.. echo $test_output > ./test_output.txt - if [[ $retVal -ne 0 ]]; then + if [[ $retval -ne 0 ]]; then echo "succeeded=NO" >> $GITHUB_OUTPUT else echo "succeeded=YES" >> $GITHUB_OUTPUT From 2fe93929347af1e3acc64deaada985525ea38e02 Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Thu, 16 Nov 2023 23:09:50 -0500 Subject: [PATCH 5/5] Version bump to 5.18.0 --- build/Version.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Version.props b/build/Version.props index df4b800ca1..3478f0fc6f 100644 --- a/build/Version.props +++ b/build/Version.props @@ -3,7 +3,7 @@ - 5.17.3 + 5.18.0 4.7.1 9.14.0 7.0.0