diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index b9b539c32e800b..9e04917b240d83 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,7 +1,7 @@ // tgstation-server DMAPI // The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in IETF RFC 2119. -#define TGS_DMAPI_VERSION "7.3.3" +#define TGS_DMAPI_VERSION "7.4.0" // All functions and datums outside this document are subject to change with any version and should not be relied on. @@ -584,11 +584,17 @@ /world/proc/TgsTriggerEvent(event_name, list/parameters, wait_for_completion = FALSE) CAN_BE_REDEFINED(TRUE) return + + +/// Trigger a TGS deployment for the current instance. The current state of the repository will not be changed. +/world/proc/TgsTriggerDeployment() + CAN_BE_REDEFINED(TRUE) + return /* The MIT License -Copyright (c) 2017-2024 Jordan Brown +Copyright (c) 2017-2026 Jordan Brown Permission is hereby granted, free of charge, to any person obtaining a copy of this software and diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm index 63cb5a2c35147c..f70d07aaed8588 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -177,3 +177,8 @@ parameters = list() return api.TriggerEvent(event_name, parameters, wait_for_completion) + +/world/TgsTriggerDeployment() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + return api.TriggerDeployment() diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index 3ca53e9bf7c659..fae924929dbb31 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -72,3 +72,6 @@ TGS_PROTECT_DATUM(/datum/tgs_api) /datum/tgs_api/proc/TriggerEvent(event_name, list/parameters, wait_for_completion) return FALSE + +/datum/tgs_api/proc/TriggerDeployment() + return TGS_UNIMPLEMENTED diff --git a/code/modules/tgs/v5/__interop_version.dm b/code/modules/tgs/v5/__interop_version.dm index 9589cbf31bb2b7..e6ebf62db105ad 100644 --- a/code/modules/tgs/v5/__interop_version.dm +++ b/code/modules/tgs/v5/__interop_version.dm @@ -1 +1 @@ -"5.10.1" +"5.11.0" diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm index a47bfd78000bc4..d4bd50353ed5ac 100644 --- a/code/modules/tgs/v5/_defines.dm +++ b/code/modules/tgs/v5/_defines.dm @@ -15,6 +15,7 @@ #define DMAPI5_BRIDGE_COMMAND_CHAT_SEND 5 #define DMAPI5_BRIDGE_COMMAND_CHUNK 6 #define DMAPI5_BRIDGE_COMMAND_EVENT 7 +#define DMAPI5_BRIDGE_COMMAND_DEPLOY 8 #define DMAPI5_PARAMETER_ACCESS_IDENTIFIER "accessIdentifier" #define DMAPI5_PARAMETER_CUSTOM_COMMANDS "customCommands" diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm index 4ca9036b7902be..8ade67d28e7b1c 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -294,6 +294,19 @@ return TRUE +/datum/tgs_api/v5/TriggerDeployment(event_name, list/parameters, wait_for_completion) + RequireInitialBridgeResponse() + WaitForReattach(TRUE) + + if(interop_version.minor < 11) + TGS_WARNING_LOG("Interop version too low for triggering deployments!") + return FALSE + + var response = Bridge(DMAPI5_BRIDGE_COMMAND_DEPLOY) + if(!response) + return FALSE + return TRUE + /datum/tgs_api/v5/proc/DecodeChannels(chat_update_json) TGS_DEBUG_LOG("DecodeChannels()") var/list/chat_channels_json = chat_update_json[DMAPI5_CHAT_UPDATE_CHANNELS] diff --git a/code/modules/tgs/v5/undefs.dm b/code/modules/tgs/v5/undefs.dm index ca49e46cdffad0..9fb845c91d67ca 100644 --- a/code/modules/tgs/v5/undefs.dm +++ b/code/modules/tgs/v5/undefs.dm @@ -15,6 +15,7 @@ #undef DMAPI5_BRIDGE_COMMAND_CHAT_SEND #undef DMAPI5_BRIDGE_COMMAND_CHUNK #undef DMAPI5_BRIDGE_COMMAND_EVENT +#undef DMAPI5_BRIDGE_COMMAND_DEPLOY #undef DMAPI5_PARAMETER_ACCESS_IDENTIFIER #undef DMAPI5_PARAMETER_CUSTOM_COMMANDS