From a834a59d4ae801d882e89f239306255fdab89aaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Gr=C3=BCnwald?= Date: Fri, 3 Jan 2025 12:29:46 +0100 Subject: [PATCH] Add GitLabCIServerInfo.Url property The Url property returns the base url of the current GitLab server (read from the CI_SERVER_URL environment variable) --- .../Fixtures/Build/GitLabCIInfoFixture.cs | 1 + .../GitLabCI/Data/GitLabCIServerInfoTests.cs | 18 +++++++++++++++++- .../Build/GitLabCI/Data/GitLabCIServerInfo.cs | 8 ++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/Cake.Common.Tests/Fixtures/Build/GitLabCIInfoFixture.cs b/src/Cake.Common.Tests/Fixtures/Build/GitLabCIInfoFixture.cs index 9e8bc2a8d7..968b18a106 100644 --- a/src/Cake.Common.Tests/Fixtures/Build/GitLabCIInfoFixture.cs +++ b/src/Cake.Common.Tests/Fixtures/Build/GitLabCIInfoFixture.cs @@ -60,6 +60,7 @@ public GitLabCIInfoFixture(bool versionNineOrNewer = false) Environment.GetEnvironmentVariable("CI_RUNNER_DESCRIPTION").Returns("my runner"); Environment.GetEnvironmentVariable("CI_RUNNER_TAGS").Returns("[\"docker\", \"linux\"]"); Environment.GetEnvironmentVariable("CI_SERVER").Returns("yes"); + Environment.GetEnvironmentVariable("CI_SERVER_URL").Returns("https://gitlab.example.com:8080"); Environment.GetEnvironmentVariable("CI_SERVER_NAME").Returns("GitLab"); Environment.GetEnvironmentVariable("CI_SERVER_REVISION").Returns("70606bf"); Environment.GetEnvironmentVariable("CI_SERVER_VERSION").Returns("8.9.0"); diff --git a/src/Cake.Common.Tests/Unit/Build/GitLabCI/Data/GitLabCIServerInfoTests.cs b/src/Cake.Common.Tests/Unit/Build/GitLabCI/Data/GitLabCIServerInfoTests.cs index 67e373081d..ef01b5922e 100644 --- a/src/Cake.Common.Tests/Unit/Build/GitLabCI/Data/GitLabCIServerInfoTests.cs +++ b/src/Cake.Common.Tests/Unit/Build/GitLabCI/Data/GitLabCIServerInfoTests.cs @@ -58,4 +58,20 @@ public void Should_Return_Correct_Value() Assert.Equal("8.9.0", result); } } -} + + public sealed class TheUrlProperty + { + [Fact] + public void Should_Return_Correct_Value() + { + // Given + var info = new GitLabCIInfoFixture().CreateServerInfo(); + + // When + var result = info.Url; + + // Then + Assert.Equal("https://gitlab.example.com:8080", result); + } + } +} \ No newline at end of file diff --git a/src/Cake.Common/Build/GitLabCI/Data/GitLabCIServerInfo.cs b/src/Cake.Common/Build/GitLabCI/Data/GitLabCIServerInfo.cs index f0e8bb3b9b..f9fdf89f3b 100644 --- a/src/Cake.Common/Build/GitLabCI/Data/GitLabCIServerInfo.cs +++ b/src/Cake.Common/Build/GitLabCI/Data/GitLabCIServerInfo.cs @@ -43,5 +43,13 @@ public GitLabCIServerInfo(ICakeEnvironment environment) /// The GitLab revision that is used to schedule builds. /// public string Revision => GetEnvironmentString("CI_SERVER_REVISION"); + + /// + /// Gets the base URL of the GitLab instance, including protocol and port. + /// + /// + /// The base URL of the GitLab instance, including protocol and port. + /// + public string Url => GetEnvironmentString("CI_SERVER_URL"); } }