private void AssertVariablesAreWrittenToFile(string f) { var writes = new List <string>(); var semanticVersion = new SemanticVersion { Major = 1, Minor = 2, Patch = 3, PreReleaseTag = "beta1", BuildMetaData = "5" }; semanticVersion.BuildMetaData.CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z"); semanticVersion.BuildMetaData.Sha = "commitSha"; var config = new TestEffectiveConfiguration(); var variables = variableProvider.GetVariablesFor(semanticVersion, config, false); var j = new Jenkins(environment, log, f); j.WriteIntegration(writes.Add, variables); writes[1].ShouldBe("1.2.3-beta.1+5"); File.Exists(f).ShouldBe(true); var props = File.ReadAllText(f); props.ShouldContain("GitVersion_Major=1"); props.ShouldContain("GitVersion_Minor=2"); }
public VersionVariables CalculateVersionVariables() { gitPreparer.Prepare(); //we need to prepare the repository before using it for version calculation var gitVersionOptions = options.Value; var cacheKey = cacheKeyFactory.Create(gitVersionOptions.ConfigInfo.OverrideConfig); var versionVariables = gitVersionOptions.Settings.NoCache ? default : gitVersionCache.LoadVersionVariablesFromDiskCache(cacheKey); if (versionVariables != null) { return(versionVariables); } var semanticVersion = nextVersionCalculator.FindVersion(); versionVariables = variableProvider.GetVariablesFor(semanticVersion, context.Configuration, context.IsCurrentCommitTagged); if (gitVersionOptions.Settings.NoCache) { return(versionVariables); } try { gitVersionCache.WriteVariablesToDiskCache(cacheKey, versionVariables); } catch (AggregateException e) { log.Warning($"One or more exceptions during cache write:{System.Environment.NewLine}{e}"); } return(versionVariables); }
private VersionVariables ExecuteInternal(Arguments arguments) { var configuration = configProvider.Provide(overrideConfig: arguments.OverrideConfig); using var repo = new Repository(arguments.DotGitDirectory); var targetBranch = repo.GetTargetBranch(arguments.TargetBranch); var gitVersionContext = new GitVersionContext(repo, log, targetBranch, configuration, commitId: arguments.CommitId); var semanticVersion = nextVersionCalculator.FindVersion(gitVersionContext); return(variableProvider.GetVariablesFor(semanticVersion, gitVersionContext.Configuration, gitVersionContext.IsCurrentCommitTagged)); }
public void UpdateProjectXmlVersionElementWithStandardXmlInsertsElement(string xml) { using var projectFileUpdater = new ProjectFileUpdater(log, fileSystem); var variables = variableProvider.GetVariablesFor(SemanticVersion.Parse("2.0.0", "v"), new TestEffectiveConfiguration(), false); var xmlRoot = XElement.Parse(xml); projectFileUpdater.UpdateProjectVersionElement(xmlRoot, ProjectFileUpdater.AssemblyVersionElement, variables.AssemblySemVer); var expectedXml = XElement.Parse(@" <Project Sdk=""Microsoft.NET.Sdk""> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> <AssemblyVersion>2.0.0.0</AssemblyVersion> </PropertyGroup> </Project>"); xmlRoot.ToString().ShouldBe(expectedXml.ToString()); }
private VersionVariables ExecuteInternal(string targetBranch, string commitId, Config overrideConfig) { var configuration = configProvider.Provide(overrideConfig: overrideConfig); using var repo = new Repository(gitPreparer.GetDotGitDirectory()); var gitVersionContext = new GitVersionContext(repo, log, targetBranch, configuration, commitId: commitId); var semanticVersion = nextVersionCalculator.FindVersion(gitVersionContext); return(variableProvider.GetVariablesFor(semanticVersion, gitVersionContext.Configuration, gitVersionContext.IsCurrentCommitTagged)); }
public void ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo(string fileExtension) { var workingDir = Path.GetTempPath(); var assemblyInfoFile = "VersionAssemblyInfo." + fileExtension; var fullPath = Path.Combine(workingDir, assemblyInfoFile); var variables = variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false); using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fileSystem); assemblyInfoFileUpdater.Execute(variables, new AssemblyInfoContext(workingDir, true, assemblyInfoFile)); fileSystem.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension))); }
public void ProvidesVariablesInContinuousDeliveryModeForPreRelease() { var semVer = new SemanticVersion { Major = 1, Minor = 2, Patch = 3, PreReleaseTag = "unstable.4", BuildMetaData = "5.Branch.develop" }; semVer.BuildMetaData.VersionSourceSha = "versionSourceSha"; semVer.BuildMetaData.Sha = "commitSha"; semVer.BuildMetaData.ShortSha = "commitShortSha"; semVer.BuildMetaData.CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z"); var config = new TestEffectiveConfiguration(); var vars = variableProvider.GetVariablesFor(semVer, config, false); JsonOutputFormatter.ToJson(vars).ShouldMatchApproved(c => c.SubFolder("Approved")); }
public void ShouldLogWarningWhenUsingDefaultInformationalVersionInCustomFormat() { var semVer = new SemanticVersion { Major = 1, Minor = 2, Patch = 3, }; #pragma warning disable CS0618 // Type or member is obsolete var propertyName = nameof(SemanticVersionFormatValues.DefaultInformationalVersion); #pragma warning restore CS0618 // Type or member is obsolete var config = new TestEffectiveConfiguration(assemblyInformationalFormat: $"{{{propertyName}}}"); variableProvider.GetVariablesFor(semVer, config, false); logMessages.ShouldContain(message => message.Trim().StartsWith("WARN") && message.Contains(propertyName), 1, $"Expected a warning to be logged when using the variable {propertyName} in a configuration format template"); }
private VersionVariables ExecuteInternal() { var semanticVersion = nextVersionCalculator.FindVersion(); return(variableProvider.GetVariablesFor(semanticVersion, context.Configuration, context.IsCurrentCommitTagged)); }