mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 22:17:32 +01:00
Fixes and improves TGS revision info (#15283)
* Initial Commit * Fixes this * Try this * Apply suggestions from code review Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com> Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
This commit is contained in:
co-authored by
Jordan Brown
parent
6d202aab6b
commit
95e4bf87c7
+55
-3
@@ -11,12 +11,26 @@ GLOBAL_PROTECT(revision_info) // Dont mess with this
|
||||
var/commit_hash
|
||||
/// Date that this commit was made
|
||||
var/commit_date
|
||||
/// Origin commit (Only set if running TGS, and will only be different if the server is running testmerges)
|
||||
var/origin_commit
|
||||
/// List of testmerges (If applicable)
|
||||
var/list/testmerges = list()
|
||||
|
||||
// Pull info from the rust DLL
|
||||
/datum/code_revision/New()
|
||||
commit_hash = rustg_git_revparse("HEAD")
|
||||
if(commit_hash)
|
||||
commit_date = rustg_git_commit_date(commit_hash)
|
||||
|
||||
// Pull info from TGS
|
||||
/datum/code_revision/proc/load_tgs_info()
|
||||
testmerges = world.TgsTestMerges()
|
||||
var/datum/tgs_revision_information/revinfo = world.TgsRevision()
|
||||
if(revinfo)
|
||||
commit_hash = revinfo.commit
|
||||
origin_commit = revinfo.origin_commit
|
||||
commit_date = revinfo.timestamp
|
||||
|
||||
/**
|
||||
* Code Revision Logging Helper
|
||||
*
|
||||
@@ -24,17 +38,50 @@ GLOBAL_PROTECT(revision_info) // Dont mess with this
|
||||
*/
|
||||
/datum/code_revision/proc/log_info()
|
||||
// Put revision info in the world log
|
||||
var/logmsg
|
||||
var/list/logmsgs = list()
|
||||
if(commit_hash && commit_date)
|
||||
logmsg = "Running ParaCode commit: [commit_hash] (Date: [commit_date])"
|
||||
logmsgs += "Running ParaCode commit: [commit_hash] (Date: [commit_date])"
|
||||
else
|
||||
logmsg = "Unable to determine revision info! Code may not be running in a git repository."
|
||||
logmsgs += "Unable to determine revision info! Code may not be running in a git repository."
|
||||
|
||||
// Check if we were on TGS
|
||||
if(world.TgsAvailable())
|
||||
if(origin_commit && (commit_hash != origin_commit)) // Commits are different, theres likely a testmerge
|
||||
logmsgs += "Origin commit: [origin_commit]"
|
||||
if(length(testmerges))
|
||||
logmsgs += "The following PRs are testmerged:"
|
||||
for(var/pr in testmerges)
|
||||
var/datum/tgs_revision_information/test_merge/tm = pr
|
||||
logmsgs += "PR #[tm.number] at commit [tm.head_commit]"
|
||||
// Log these in blackbox so they can be attributed to round IDs easier in the future
|
||||
SSblackbox.record_feedback("associative", "testmerged_prs", 1, list("number" = "[tm.number]", "commit" = "[tm.head_commit]", "title" = "[tm.title]", "author" = "[tm.author]"))
|
||||
|
||||
var/logmsg = logmsgs.Join("\n")
|
||||
|
||||
// Log it in all these
|
||||
log_world(logmsg)
|
||||
log_runtime_txt(logmsg)
|
||||
log_runtime_summary(logmsg)
|
||||
|
||||
|
||||
/**
|
||||
* Testmerge Chat Message Helper
|
||||
*
|
||||
* Formats testmerged PRs into a nice message
|
||||
* Arguments:
|
||||
* * header - Should a header be sent too
|
||||
*/
|
||||
/datum/code_revision/proc/get_testmerge_chatmessage(header = FALSE)
|
||||
var/list/msg = list()
|
||||
if(header)
|
||||
msg += "<span class='notice'>The following PRs are currently testmerged:</span>"
|
||||
|
||||
for(var/pr in GLOB.revision_info.testmerges)
|
||||
var/datum/tgs_revision_information/test_merge/tm = pr
|
||||
msg += "- PR <a href='[tm.url]'>#[tm.number] - [tm.title]</a>"
|
||||
|
||||
return msg.Join("<br>")
|
||||
|
||||
/client/verb/get_revision_info()
|
||||
set name = "Get Revision Info"
|
||||
set category = "OOC"
|
||||
@@ -48,9 +95,14 @@ GLOBAL_PROTECT(revision_info) // Dont mess with this
|
||||
// Commit info
|
||||
if(GLOB.revision_info.commit_hash && GLOB.revision_info.commit_date)
|
||||
msg += "<b>Server Commit:</b> <a href='[config.githuburl]/commit/[GLOB.revision_info.commit_hash]'>[GLOB.revision_info.commit_hash]</a> (Date: [GLOB.revision_info.commit_date])"
|
||||
if(GLOB.revision_info.origin_commit && (GLOB.revision_info.commit_hash != GLOB.revision_info.origin_commit))
|
||||
msg += "<b>Origin Commit:</b> <a href='[config.githuburl]/commit/[GLOB.revision_info.origin_commit]'>[GLOB.revision_info.origin_commit]</a>"
|
||||
else
|
||||
msg += "<b>Server Commit:</b> <i>Unable to determine</i>"
|
||||
|
||||
if(world.TgsAvailable() && length(GLOB.revision_info.testmerges))
|
||||
msg += "<b>Active Testmerges:</b>"
|
||||
msg += GLOB.revision_info.get_testmerge_chatmessage(FALSE)
|
||||
|
||||
// Show server BYOND version
|
||||
msg += "<b>Server BYOND Version:</b> [world.byond_version].[world.byond_build]"
|
||||
|
||||
Reference in New Issue
Block a user