-
Notifications
You must be signed in to change notification settings - Fork 654
/
Copy pathGitLabCi.cs
38 lines (26 loc) · 1.33 KB
/
GitLabCi.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using GitVersion.Logging;
using GitVersion.OutputVariables;
namespace GitVersion.Agents;
internal class GitLabCi : BuildAgentBase
{
public const string EnvironmentVariableName = "GITLAB_CI";
private string? file;
public GitLabCi(IEnvironment environment, ILog log) : base(environment, log) => WithPropertyFile("gitversion.properties");
public void WithPropertyFile(string propertiesFileName) => this.file = propertiesFileName;
protected override string EnvironmentVariable => EnvironmentVariableName;
public override string GenerateSetVersionMessage(GitVersionVariables variables) => variables.FullSemVer;
public override string[] GenerateSetParameterMessage(string name, string? value) =>
[
$"GitVersion_{name}={value}"
];
public override string? GetCurrentBranch(bool usingDynamicRepos) => Environment.GetEnvironmentVariable("CI_COMMIT_REF_NAME");
public override bool PreventFetch() => true;
public override void WriteIntegration(Action<string?> writer, GitVersionVariables variables, bool updateBuildNumber = true)
{
if (this.file is null)
return;
base.WriteIntegration(writer, variables, updateBuildNumber);
writer($"Outputting variables to '{this.file}' ... ");
File.WriteAllLines(this.file, GenerateBuildLogOutput(variables));
}
}