From 2413dc84f0d22ddecb46f93544b7cfce4d8e50e7 Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Fri, 10 Nov 2023 23:21:06 -0500 Subject: [PATCH 1/4] Fix .deb `postinst` conditional. --- build/package/deb/debian/postinst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/package/deb/debian/postinst b/build/package/deb/debian/postinst index 9f71a1931f..a9ce7b9696 100755 --- a/build/package/deb/debian/postinst +++ b/build/package/deb/debian/postinst @@ -2,7 +2,7 @@ #DEBHELPER# -if [ "$1" = "configure" ]; then +if [ -z "$2" ]; then chmod 600 /etc/tgstation-server deb-systemd-helper stop 'tgstation-server.service' >/dev/null || true From 30293c3e39052ead17c1a67ee2b549f6409ad9eb Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Sat, 11 Nov 2023 21:31:07 -0500 Subject: [PATCH 2/4] Fix repository fetching possibly not fetching all tags --- .../Components/Repository/Repository.cs | 1 + .../Tgstation.Server.Tests/TestRepository.cs | 80 ++++++++++++++++++- 2 files changed, 79 insertions(+), 2 deletions(-) diff --git a/src/Tgstation.Server.Host/Components/Repository/Repository.cs b/src/Tgstation.Server.Host/Components/Repository/Repository.cs index 46cc06fd8e..ea7844c2a8 100644 --- a/src/Tgstation.Server.Host/Components/Repository/Repository.cs +++ b/src/Tgstation.Server.Host/Components/Repository/Repository.cs @@ -450,6 +450,7 @@ namespace Tgstation.Server.Host.Components.Repository OnTransferProgress = TransferProgressHandler(progressReporter.CreateSection("Fetch Origin", 1.0), cancellationToken), OnUpdateTips = (a, b, c) => !cancellationToken.IsCancellationRequested, CredentialsProvider = credentialsProvider.GenerateCredentialsHandler(username, password), + TagFetchMode = TagFetchMode.All, }, "Fetch origin commits"); } diff --git a/tests/Tgstation.Server.Tests/TestRepository.cs b/tests/Tgstation.Server.Tests/TestRepository.cs index e03fbe984a..d0549409f9 100644 --- a/tests/Tgstation.Server.Tests/TestRepository.cs +++ b/tests/Tgstation.Server.Tests/TestRepository.cs @@ -1,8 +1,11 @@ using System; using System.IO; +using System.Linq; using System.Threading; using System.Threading.Tasks; +using LibGit2Sharp; + using Microsoft.Extensions.Logging; using Microsoft.VisualStudio.TestTools.UnitTesting; @@ -28,7 +31,7 @@ namespace Tgstation.Server.Tests { LibGit2Sharp.Repository.Clone("https://github.com/Cyberboss/test", tempPath); var libGit2Repo = new LibGit2Sharp.Repository(tempPath); - using var repo = new Repository( + using var repo = new Host.Components.Repository.Repository( libGit2Repo, new LibGit2Commands(), Mock.Of(), @@ -36,7 +39,7 @@ namespace Tgstation.Server.Tests Mock.Of(), Mock.Of(), Mock.Of(), - Mock.Of>(), + Mock.Of>(), new GeneralConfiguration(), () => { }); @@ -56,5 +59,78 @@ namespace Tgstation.Server.Tests CancellationToken.None); } } + + [TestMethod] + public async Task TestFetchingAdditionalCommits() + { + var tempPath = Path.Combine(Path.GetTempPath(), "TGS-Repository-Integration-Test", Guid.NewGuid().ToString()); + var repoFac = + new LibGit2RepositoryFactory( + Mock.Of>()); + var commands = new LibGit2Commands(); + using var manager = new RepositoryManager( + repoFac, + commands, + new ResolvingIOManager( + new DefaultIOManager(), + tempPath), + Mock.Of(), + new WindowsPostWriteHandler(), + Mock.Of(), + Mock.Of>(), + Mock.Of>(), + new GeneralConfiguration()); + try + { + using (await manager.CloneRepository( + new Uri("https://github.com/Cyberboss/common_core"), + null, + null, + null, + new JobProgressReporter(Mock.Of>(), null, (_, _) => { }), + true, + default)) + { + } + + using (var repo = await repoFac.CreateFromPath(tempPath, default)) + { + repo.Network.Remotes.Update("origin", updater => + { + updater.Url = "https://github.com/tgstation/common_core"; + }); + + var targetCommit = repo.Lookup("5b0d0a38057a2c8306a852ccbd6cd6f4ae766a33"); + Assert.IsNull(targetCommit); + } + + using (var repo2 = await manager.LoadRepository(default)) + { + await repo2.FetchOrigin( + new JobProgressReporter(Mock.Of>(), null, (_, _) => { }), + null, + null, + false, + default); + } + + using var repo3 = await repoFac.CreateFromPath(tempPath, default); + var remote = repo3.Network.Remotes.First(); + commands.Fetch(repo3, remote.FetchRefSpecs.Select(x => x.Specification), remote, new FetchOptions + { + TagFetchMode = TagFetchMode.All, + Prune = true, + }, "test"); + + var targetCommit2 = repo3.Lookup("5b0d0a38057a2c8306a852ccbd6cd6f4ae766a33"); + Assert.IsNotNull(targetCommit2); + } + finally + { + await new DefaultIOManager().DeleteDirectory( + Path.GetDirectoryName(tempPath), + CancellationToken.None); + } + } } } From 9ea468b8244bda363ccff8c1934598318532da49 Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Sat, 11 Nov 2023 21:31:38 -0500 Subject: [PATCH 3/4] Version bump to 5.17.2 --- build/Version.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Version.props b/build/Version.props index ae1f43929d..c79cd90822 100644 --- a/build/Version.props +++ b/build/Version.props @@ -3,7 +3,7 @@ - 5.17.1 + 5.17.2 4.7.1 9.13.0 7.0.0 From a252c5f95a108a2244fd11ade9ec3d2abc96b1ef Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Sat, 11 Nov 2023 21:50:38 -0500 Subject: [PATCH 4/4] Update dotnet redistributable to latest --- build/Version.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Version.props b/build/Version.props index c79cd90822..28f434af34 100644 --- a/build/Version.props +++ b/build/Version.props @@ -17,7 +17,7 @@ netstandard2.0 6 - https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/6.0.23/dotnet-hosting-6.0.23-win.exe + https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/6.0.24/dotnet-hosting-6.0.24-win.exe 10.11.5 https://ftp.osuosl.org/pub/mariadb//mariadb-10.11.5/winx64-packages/mariadb-10.11.5-winx64.msi