From f329d6de5c357176cba6c2eaf060fd4926b77c4c Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Wed, 18 Aug 2021 11:54:57 -0400 Subject: [PATCH] Compilation event script improvements - Add event script for before DreamMaker is run. - Include BYOND version used in the 3 main compile events. --- .../Components/Deployment/DreamMaker.cs | 24 ++++++++++++++++++- .../Components/Events/EventType.cs | 12 +++++++--- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs b/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs index eaf3c1b3ac..d1a3ac96bf 100644 --- a/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs +++ b/src/Tgstation.Server.Host/Components/Deployment/DreamMaker.cs @@ -561,6 +561,7 @@ namespace Tgstation.Server.Host.Components.Deployment { resolvedOutputDirectory, repoOrigin.ToString(), + $"{byondLock.Version.Major}.{byondLock.Version.Minor}", }, cancellationToken) .ConfigureAwait(false); @@ -589,6 +590,18 @@ namespace Tgstation.Server.Host.Components.Deployment await ModifyDme(job, cancellationToken).ConfigureAwait(false); + // run precompile scripts + await eventConsumer.HandleEvent( + EventType.PreDreamMaker, + new List + { + resolvedOutputDirectory, + repoOrigin.ToString(), + $"{byondLock.Version.Major}.{byondLock.Version.Minor}", + }, + cancellationToken) + .ConfigureAwait(false); + // run compiler var exitCode = await RunDreamMaker(byondLock.DreamMakerPath, job, cancellationToken).ConfigureAwait(false); @@ -619,13 +632,22 @@ namespace Tgstation.Server.Host.Components.Deployment { resolvedOutputDirectory, exitCode == 0 ? "1" : "0", + $"{byondLock.Version.Major}.{byondLock.Version.Minor}", }, cancellationToken) .ConfigureAwait(false); throw; } - await eventConsumer.HandleEvent(EventType.CompileComplete, new List { resolvedOutputDirectory }, cancellationToken).ConfigureAwait(false); + await eventConsumer.HandleEvent( + EventType.CompileComplete, + new List + { + resolvedOutputDirectory, + $"{byondLock.Version.Major}.{byondLock.Version.Minor}", + }, + cancellationToken) + .ConfigureAwait(false); logger.LogTrace("Applying static game file symlinks..."); diff --git a/src/Tgstation.Server.Host/Components/Events/EventType.cs b/src/Tgstation.Server.Host/Components/Events/EventType.cs index bcc4085250..ba91a25f4f 100644 --- a/src/Tgstation.Server.Host/Components/Events/EventType.cs +++ b/src/Tgstation.Server.Host/Components/Events/EventType.cs @@ -55,7 +55,7 @@ ByondActiveVersionChange, /// - /// Parameters: Game directory path, origin commit sha + /// After the repo is copied, before CodeModifications are applied. Parameters: Game directory path, origin commit sha, byond version /// [EventScript("PreCompile")] CompileStart, @@ -67,13 +67,13 @@ CompileCancelled, /// - /// Parameters: Game directory path, "1" if compile succeeded and api validation failed, "0" otherwise + /// Parameters: Game directory path, "1" if compile succeeded and api validation failed, "0" otherwise, BYOND version used /// [EventScript("CompileFailure")] CompileFailure, /// - /// Parameters: Game directory path + /// Parameters: Game directory path, BYOND version used /// [EventScript("PostCompile")] CompileComplete, @@ -149,5 +149,11 @@ /// [EventScript("RepoSubmoduleUpdate")] RepoSubmoduleUpdate, + + /// + /// After CodeModifications are applied, before DreamMaker is run. Parameters: Game directory path, origin commit sha, byond version + /// + [EventScript("PreDreamMaker")] + PreDreamMaker, } }