mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-22 20:47:28 +01:00
Address requested changes
This commit is contained in:
@@ -939,37 +939,28 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
|
||||
if (gitHubOwner == null || gitHubRepo == null)
|
||||
return fields;
|
||||
|
||||
previousRevisionInformation ??= new Models.RevisionInformation();
|
||||
previousRevisionInformation.ActiveTestMerges ??= new List<RevInfoTestMerge>();
|
||||
var previousTestMerges = (IEnumerable<RevInfoTestMerge>?)previousRevisionInformation?.ActiveTestMerges ?? Enumerable.Empty<RevInfoTestMerge>();
|
||||
var currentTestMerges = (IEnumerable<RevInfoTestMerge>?)revisionInformation.ActiveTestMerges ?? Enumerable.Empty<RevInfoTestMerge>();
|
||||
|
||||
revisionInformation.ActiveTestMerges ??= new List<RevInfoTestMerge>();
|
||||
|
||||
var addedTestMerges = revisionInformation
|
||||
.ActiveTestMerges
|
||||
// determine what TMs were changed and how
|
||||
var addedTestMerges = currentTestMerges
|
||||
.Select(x => x.TestMerge)
|
||||
.Where(x => !previousRevisionInformation
|
||||
.ActiveTestMerges
|
||||
.Where(x => !previousTestMerges
|
||||
.Any(y => y.TestMerge.Number == x.Number))
|
||||
.ToList();
|
||||
var removedTestMerges = previousRevisionInformation
|
||||
.ActiveTestMerges
|
||||
var removedTestMerges = previousTestMerges
|
||||
.Select(x => x.TestMerge)
|
||||
.Where(x => !revisionInformation
|
||||
.ActiveTestMerges
|
||||
.Where(x => !currentTestMerges
|
||||
.Any(y => y.TestMerge.Number == x.Number))
|
||||
.ToList();
|
||||
var updatedTestMerges = revisionInformation
|
||||
.ActiveTestMerges
|
||||
var updatedTestMerges = currentTestMerges
|
||||
.Select(x => x.TestMerge)
|
||||
.Where(x => previousRevisionInformation
|
||||
.ActiveTestMerges
|
||||
.Where(x => previousTestMerges
|
||||
.Any(y => y.TestMerge.Number == x.Number && y.TestMerge.TargetCommitSha != x.TargetCommitSha))
|
||||
.ToList();
|
||||
var unchangedTestMerges = revisionInformation
|
||||
.ActiveTestMerges
|
||||
var unchangedTestMerges = currentTestMerges
|
||||
.Select(x => x.TestMerge)
|
||||
.Where(x => previousRevisionInformation
|
||||
.ActiveTestMerges
|
||||
.Where(x => previousTestMerges
|
||||
.Any(y => y.TestMerge.Number == x.Number && y.TestMerge.TargetCommitSha == x.TargetCommitSha))
|
||||
.ToList();
|
||||
|
||||
@@ -1008,7 +999,6 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
|
||||
false)));
|
||||
|
||||
if (removedTestMerges.Count != 0)
|
||||
{
|
||||
fields.Add(
|
||||
new EmbedField(
|
||||
"Removed:",
|
||||
@@ -1016,7 +1006,6 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
|
||||
Environment.NewLine,
|
||||
removedTestMerges
|
||||
.Select(x => $"- #{x.Number} [{x.TitleAtMerge}]({x.Url}) by _[@{x.Author}](https://github.com/{x.Author})_"))));
|
||||
}
|
||||
|
||||
return fields;
|
||||
}
|
||||
|
||||
@@ -232,8 +232,8 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
|
||||
ArgumentNullException.ThrowIfNull(gitHubOwner);
|
||||
ArgumentNullException.ThrowIfNull(gitHubRepo);
|
||||
|
||||
previousRevisionInformation ??= new Models.RevisionInformation();
|
||||
previousRevisionInformation.ActiveTestMerges ??= new List<RevInfoTestMerge>();
|
||||
var previousTestMerges = (IEnumerable<RevInfoTestMerge>?)previousRevisionInformation?.ActiveTestMerges ?? Enumerable.Empty<RevInfoTestMerge>();
|
||||
var currentTestMerges = (IEnumerable<RevInfoTestMerge>?)revisionInformation.ActiveTestMerges ?? Enumerable.Empty<RevInfoTestMerge>();
|
||||
|
||||
var commitInsert = revisionInformation.CommitSha![..7];
|
||||
string remoteCommitInsert;
|
||||
@@ -245,45 +245,34 @@ namespace Tgstation.Server.Host.Components.Chat.Providers
|
||||
else
|
||||
remoteCommitInsert = String.Format(CultureInfo.InvariantCulture, ". Remote commit: ^{0}", revisionInformation.OriginCommitSha![..7]);
|
||||
|
||||
var testmergeInsert = (revisionInformation.ActiveTestMerges?.Count ?? 0) == 0
|
||||
var testmergeInsert = !currentTestMerges.Any()
|
||||
? String.Empty
|
||||
: String.Format(
|
||||
CultureInfo.InvariantCulture,
|
||||
" (Test Merges: {0})",
|
||||
String.Join(
|
||||
", ",
|
||||
revisionInformation
|
||||
.ActiveTestMerges!
|
||||
currentTestMerges
|
||||
.Select(x => x.TestMerge)
|
||||
.Select(x =>
|
||||
{
|
||||
var status = string.Empty;
|
||||
if (!previousRevisionInformation.ActiveTestMerges.Any(y => y.TestMerge.Number == x.Number))
|
||||
{
|
||||
if (!previousTestMerges.Any(y => y.TestMerge.Number == x.Number))
|
||||
status = "Added";
|
||||
}
|
||||
else if (revisionInformation.ActiveTestMerges!.Any(y => y.TestMerge.Number == x.Number && y.TestMerge.TargetCommitSha != x.TargetCommitSha))
|
||||
{
|
||||
else if (previousTestMerges.Any(y => y.TestMerge.Number == x.Number && y.TestMerge.TargetCommitSha != x.TargetCommitSha))
|
||||
status = "Updated";
|
||||
}
|
||||
|
||||
var result = String.Format(CultureInfo.InvariantCulture, "#{0} at {1}", x.Number, x.TargetCommitSha![..7]);
|
||||
var result = $"#{x.Number} at {x.TargetCommitSha![..7]}";
|
||||
|
||||
if (x.Comment != null)
|
||||
if (!string.IsNullOrEmpty(x.Comment))
|
||||
{
|
||||
if (!string.IsNullOrEmpty(status))
|
||||
{
|
||||
result += String.Format(CultureInfo.InvariantCulture, " ({1} - {0})", x.Comment, status);
|
||||
}
|
||||
result += $" ({status} - {x.Comment})";
|
||||
else
|
||||
{
|
||||
result += String.Format(CultureInfo.InvariantCulture, " ({0})", x.Comment);
|
||||
}
|
||||
result += $" ({x.Comment})";
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(status))
|
||||
{
|
||||
result += String.Format(CultureInfo.InvariantCulture, " ({0})", status);
|
||||
}
|
||||
result += $" ({status})";
|
||||
|
||||
return result;
|
||||
})));
|
||||
|
||||
@@ -313,9 +313,11 @@ namespace Tgstation.Server.Host.Components.Deployment
|
||||
repositorySettings!.PushTestMergeCommits!.Value
|
||||
&& repositorySettings.AccessToken != null
|
||||
&& repositorySettings.AccessUser != null;
|
||||
var oldCompileJob = await compileJobConsumer.LatestCompileJob();
|
||||
using (repo)
|
||||
compileJob = await Compile(
|
||||
job,
|
||||
oldCompileJob,
|
||||
revInfo!,
|
||||
dreamMakerSettings!,
|
||||
ddSettings!,
|
||||
@@ -326,7 +328,6 @@ namespace Tgstation.Server.Host.Components.Deployment
|
||||
likelyPushedTestMergeCommit,
|
||||
cancellationToken);
|
||||
|
||||
var oldCompileJob = await compileJobConsumer.LatestCompileJob();
|
||||
try
|
||||
{
|
||||
await databaseContextFactory.UseContext(
|
||||
@@ -447,6 +448,7 @@ namespace Tgstation.Server.Host.Components.Deployment
|
||||
/// Run the compile implementation.
|
||||
/// </summary>
|
||||
/// <param name="job">The currently running <see cref="Job"/>.</param>
|
||||
/// <param name="oldCompileJob">The optional <see cref="CompileJob"/> of the previous deployment.</param>
|
||||
/// <param name="revisionInformation">The <see cref="RevisionInformation"/>.</param>
|
||||
/// <param name="dreamMakerSettings">The <see cref="Api.Models.Internal.DreamMakerSettings"/>.</param>
|
||||
/// <param name="launchParameters">The <see cref="DreamDaemonLaunchParameters"/>.</param>
|
||||
@@ -459,6 +461,7 @@ namespace Tgstation.Server.Host.Components.Deployment
|
||||
/// <returns>A <see cref="ValueTask{TResult}"/> resulting in the completed <see cref="CompileJob"/>.</returns>
|
||||
async ValueTask<Models.CompileJob> Compile(
|
||||
Models.Job job,
|
||||
Models.CompileJob? oldCompileJob,
|
||||
Models.RevisionInformation revisionInformation,
|
||||
Api.Models.Internal.DreamMakerSettings dreamMakerSettings,
|
||||
DreamDaemonLaunchParameters launchParameters,
|
||||
@@ -478,7 +481,6 @@ namespace Tgstation.Server.Host.Components.Deployment
|
||||
try
|
||||
{
|
||||
using var engineLock = await engineManager.UseExecutables(null, null, cancellationToken);
|
||||
var oldCompileJob = await compileJobConsumer.LatestCompileJob();
|
||||
currentChatCallback = chatManager.QueueDeploymentMessage(
|
||||
revisionInformation,
|
||||
oldCompileJob?.RevisionInformation,
|
||||
|
||||
+11
-19
@@ -66,36 +66,28 @@ namespace Tgstation.Server.Host.Components.Deployment.Remote
|
||||
if (repositorySettings.AccessToken == null)
|
||||
return;
|
||||
|
||||
var deployedRevisionInformation = compileJob.RevisionInformation;
|
||||
if ((previousRevisionInformation != null && previousRevisionInformation.CommitSha == deployedRevisionInformation.CommitSha)
|
||||
var revisionInformation = compileJob.RevisionInformation;
|
||||
if ((previousRevisionInformation != null && previousRevisionInformation.CommitSha == revisionInformation.CommitSha)
|
||||
|| !repositorySettings.PostTestMergeComment!.Value)
|
||||
return;
|
||||
|
||||
previousRevisionInformation ??= new RevisionInformation();
|
||||
previousRevisionInformation.ActiveTestMerges ??= new List<RevInfoTestMerge>();
|
||||
var previousTestMerges = (IEnumerable<RevInfoTestMerge>?)previousRevisionInformation?.ActiveTestMerges ?? Enumerable.Empty<RevInfoTestMerge>();
|
||||
var currentTestMerges = (IEnumerable<RevInfoTestMerge>?)revisionInformation.ActiveTestMerges ?? Enumerable.Empty<RevInfoTestMerge>();
|
||||
|
||||
deployedRevisionInformation.ActiveTestMerges ??= new List<RevInfoTestMerge>();
|
||||
|
||||
// added prs
|
||||
var addedTestMerges = deployedRevisionInformation
|
||||
.ActiveTestMerges
|
||||
// determine what TMs were changed and how
|
||||
var addedTestMerges = currentTestMerges
|
||||
.Select(x => x.TestMerge)
|
||||
.Where(x => !previousRevisionInformation
|
||||
.ActiveTestMerges
|
||||
.Where(x => !previousTestMerges
|
||||
.Any(y => y.TestMerge.Number == x.Number))
|
||||
.ToList();
|
||||
var removedTestMerges = previousRevisionInformation
|
||||
.ActiveTestMerges
|
||||
var removedTestMerges = previousTestMerges
|
||||
.Select(x => x.TestMerge)
|
||||
.Where(x => !deployedRevisionInformation
|
||||
.ActiveTestMerges
|
||||
.Where(x => !currentTestMerges
|
||||
.Any(y => y.TestMerge.Number == x.Number))
|
||||
.ToList();
|
||||
var updatedTestMerges = deployedRevisionInformation
|
||||
.ActiveTestMerges
|
||||
var updatedTestMerges = currentTestMerges
|
||||
.Select(x => x.TestMerge)
|
||||
.Where(x => previousRevisionInformation
|
||||
.ActiveTestMerges
|
||||
.Where(x => previousTestMerges
|
||||
.Any(y => y.TestMerge.Number == x.Number))
|
||||
.ToList();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user