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