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");
}
}