diff --git a/src/Cake.Common/Build/GitLabCI/Data/GitLabCIBuildInfo.cs b/src/Cake.Common/Build/GitLabCI/Data/GitLabCIBuildInfo.cs index c811bcf48d..693277ddab 100644 --- a/src/Cake.Common/Build/GitLabCI/Data/GitLabCIBuildInfo.cs +++ b/src/Cake.Common/Build/GitLabCI/Data/GitLabCIBuildInfo.cs @@ -26,7 +26,7 @@ public GitLabCIBuildInfo(ICakeEnvironment environment) /// /// The build ID. /// - public int Id => GetEnvironmentInteger("CI_JOB_ID", "CI_BUILD_ID"); + public long Id => GetEnvironmentLong("CI_JOB_ID", "CI_BUILD_ID"); /// /// Gets the commit revision for which project is built. @@ -106,7 +106,7 @@ public GitLabCIBuildInfo(ICakeEnvironment environment) /// /// The unique build ID. /// - public int PipelineId => GetEnvironmentInteger("CI_PIPELINE_ID"); + public long PipelineId => GetEnvironmentLong("CI_PIPELINE_ID"); /// /// Gets the unique id of the current pipeline scoped to the project. @@ -114,7 +114,7 @@ public GitLabCIBuildInfo(ICakeEnvironment environment) /// /// The unique build ID. /// - public int PipelineIId => GetEnvironmentInteger("CI_PIPELINE_IID"); + public long PipelineIId => GetEnvironmentLong("CI_PIPELINE_IID"); /// /// Gets the id of the user who started the build. @@ -122,7 +122,7 @@ public GitLabCIBuildInfo(ICakeEnvironment environment) /// /// The user ID. /// - public int UserId => GetEnvironmentInteger("GITLAB_USER_ID"); + public long UserId => GetEnvironmentLong("GITLAB_USER_ID"); /// /// Gets the email of the user who started the build. diff --git a/src/Cake.Common/Build/GitLabCI/Data/GitLabCIProjectInfo.cs b/src/Cake.Common/Build/GitLabCI/Data/GitLabCIProjectInfo.cs index 844a80b0b1..9f9624e038 100644 --- a/src/Cake.Common/Build/GitLabCI/Data/GitLabCIProjectInfo.cs +++ b/src/Cake.Common/Build/GitLabCI/Data/GitLabCIProjectInfo.cs @@ -26,7 +26,7 @@ public GitLabCIProjectInfo(ICakeEnvironment environment) /// /// The project ID. /// - public int Id => GetEnvironmentInteger("CI_PROJECT_ID"); + public long Id => GetEnvironmentLong("CI_PROJECT_ID"); /// /// Gets the project name that is currently being built. diff --git a/src/Cake.Common/Build/GitLabCI/Data/GitLabCIPullRequestInfo.cs b/src/Cake.Common/Build/GitLabCI/Data/GitLabCIPullRequestInfo.cs index 8105eca950..ca346dab4a 100644 --- a/src/Cake.Common/Build/GitLabCI/Data/GitLabCIPullRequestInfo.cs +++ b/src/Cake.Common/Build/GitLabCI/Data/GitLabCIPullRequestInfo.cs @@ -34,7 +34,7 @@ public GitLabCIPullRequestInfo(ICakeEnvironment environment) /// /// The pull request id. /// - public int Id => GetEnvironmentInteger("CI_MERGE_REQUEST_ID"); + public long Id => GetEnvironmentLong("CI_MERGE_REQUEST_ID"); /// /// Gets the pull request id scoped to the project. @@ -42,7 +42,7 @@ public GitLabCIPullRequestInfo(ICakeEnvironment environment) /// /// The pull request id. /// - public int IId => GetEnvironmentInteger("CI_MERGE_REQUEST_IID"); + public long IId => GetEnvironmentLong("CI_MERGE_REQUEST_IID"); /// /// Gets the source branch of the pull request. diff --git a/src/Cake.Common/Build/GitLabCI/Data/GitLabCIRunnerInfo.cs b/src/Cake.Common/Build/GitLabCI/Data/GitLabCIRunnerInfo.cs index 5328ec4b12..96ecb676fe 100644 --- a/src/Cake.Common/Build/GitLabCI/Data/GitLabCIRunnerInfo.cs +++ b/src/Cake.Common/Build/GitLabCI/Data/GitLabCIRunnerInfo.cs @@ -27,7 +27,7 @@ public GitLabCIRunnerInfo(ICakeEnvironment environment) /// /// The unique id of runner being used. /// - public int Id => GetEnvironmentInteger("CI_RUNNER_ID"); + public long Id => GetEnvironmentLong("CI_RUNNER_ID"); /// /// Gets the description of the runner as saved in GitLab. diff --git a/src/Cake.Common/Build/GitLabCI/GitLabCIInfo.cs b/src/Cake.Common/Build/GitLabCI/GitLabCIInfo.cs index 03a3bd2dc7..86036a6cc3 100644 --- a/src/Cake.Common/Build/GitLabCI/GitLabCIInfo.cs +++ b/src/Cake.Common/Build/GitLabCI/GitLabCIInfo.cs @@ -145,5 +145,34 @@ protected bool GetEnvironmentBoolean(string primaryVariable, string secondaryVar return null; } + + /// + /// Gets an environment variable as a . + /// + /// The environment variable name. + /// The environment variable. + protected long GetEnvironmentLong(string variable) + { + var value = GetEnvironmentString(variable); + if (!string.IsNullOrWhiteSpace(value)) + { + if (long.TryParse(value, out long result)) + { + return result; + } + } + return 0; + } + + /// + /// Gets an environment variable as a . + /// + /// The primary environment variable name. + /// The secondary environment variable name. + /// The environment variable. + protected long GetEnvironmentLong(string primaryVariable, string secondaryVariable) + { + return GetEnvironmentLong(primaryVariable) != 0 ? GetEnvironmentLong(primaryVariable) : GetEnvironmentLong(secondaryVariable); + } } } \ No newline at end of file