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