public void GivenARemoteGitRepositoryWithCommitsAndBranches_ThenClonedLocalShouldMatchRemoteVersion() { using (var fixture = new RemoteRepositoryFixture( path => { Repository.Init(path); Console.WriteLine("Created git repository at '{0}'", path); var repo = new Repository(path); repo.MakeCommits(5); repo.CreateBranch("develop"); repo.CreateBranch("release-1.0"); repo.Checkout("release-1.0"); repo.MakeCommits(5); return repo; })) { GitRepositoryHelper.NormalizeGitDirectory(fixture.LocalRepositoryFixture.RepositoryPath, new AuthenticationInfo(), noFetch: false, currentBranch: string.Empty); fixture.AssertFullSemver("1.0.0-beta.1+5"); fixture.AssertFullSemver("1.0.0-beta.1+5", fixture.LocalRepositoryFixture.Repository); } }
public void CalculateVersionVariables_TwoBranchHasSameCommitHeadDetachedAndTagged_ReturnSemver() { // Setup using var fixture = new RemoteRepositoryFixture(); fixture.LocalRepositoryFixture.Repository.MakeACommit("Init commit"); fixture.LocalRepositoryFixture.Repository.CreateBranch("feature/1.0"); fixture.LocalRepositoryFixture.Checkout("feature/1.0"); var commit = fixture.LocalRepositoryFixture.Repository.MakeACommit("feat: a new commit"); fixture.LocalRepositoryFixture.Repository.CreateBranch("support/1.0"); fixture.LocalRepositoryFixture.ApplyTag("1.0.1"); fixture.LocalRepositoryFixture.Checkout(commit.Sha); using var worktreeFixture = new LocalRepositoryFixture(new Repository(fixture.LocalRepositoryFixture.RepositoryPath)); var gitVersionOptions = new GitVersionOptions { WorkingDirectory = worktreeFixture.RepositoryPath }; var environment = new TestEnvironment(); environment.SetEnvironmentVariable(AzurePipelines.EnvironmentVariableName, "true"); this.sp = GetServiceProvider(gitVersionOptions, environment: environment); var sut = sp.GetRequiredService <IGitVersionCalculateTool>(); // Execute var version = sut.CalculateVersionVariables(); // Verify version.SemVer.ShouldBe("1.0.1"); var commits = worktreeFixture.Repository.Head.Commits; version.Sha.ShouldBe(commits.First().Sha); }
public void GivenARemoteGitRepositoryWithCommitsAndBranches_ThenClonedLocalShouldMatchRemoteVersion() { using (var fixture = new RemoteRepositoryFixture( path => { Repository.Init(path); Console.WriteLine("Created git repository at '{0}'", path); var repo = new Repository(path); repo.MakeCommits(5); repo.CreateBranch("develop"); repo.CreateBranch("release-1.0"); Commands.Checkout(repo, "release-1.0"); repo.MakeCommits(5); return(repo); })) { GitRepositoryHelper.NormalizeGitDirectory(fixture.LocalRepositoryFixture.RepositoryPath, new AuthenticationInfo(), noFetch: false, currentBranch: string.Empty); fixture.AssertFullSemver("1.0.0-beta.1+5"); fixture.AssertFullSemver("1.0.0-beta.1+5", fixture.LocalRepositoryFixture.Repository); } }
public void CalculateVersionVariables_TwoBranchHasSameCommitHeadDetachedAndNotTagged_ThrowException() { // Setup using var fixture = new RemoteRepositoryFixture(); fixture.LocalRepositoryFixture.Repository.MakeACommit("Init commit"); fixture.LocalRepositoryFixture.Repository.CreateBranch("feature/1.0"); fixture.LocalRepositoryFixture.Checkout("feature/1.0"); var commit = fixture.LocalRepositoryFixture.Repository.MakeACommit("feat: a new commit"); fixture.LocalRepositoryFixture.Repository.CreateBranch("support/1.0"); fixture.LocalRepositoryFixture.Checkout(commit.Sha); using var worktreeFixture = new LocalRepositoryFixture(new Repository(fixture.LocalRepositoryFixture.RepositoryPath)); var gitVersionOptions = new GitVersionOptions { WorkingDirectory = worktreeFixture.RepositoryPath }; var environment = new TestEnvironment(); environment.SetEnvironmentVariable(AzurePipelines.EnvironmentVariableName, "true"); this.sp = GetServiceProvider(gitVersionOptions, environment: environment); var sut = sp.GetRequiredService <IGitVersionCalculateTool>(); // Execute & Verify var exception = Assert.Throws <WarningException>(() => sut.CalculateVersionVariables()); exception?.Message.ShouldBe("Failed to try and guess branch to use. Move one of the branches along a commit to remove warning"); }
public void GivenARemoteGitRepositoryWithCommitsAndBranches_ThenClonedLocalShouldMatchRemoteVersion() { using (var fixture = new RemoteRepositoryFixture( path => { Repository.Init(path); Console.WriteLine("Created git repository at '{0}'", path); var repo = new Repository(path); repo.MakeCommits(5); repo.CreateBranch("develop"); repo.CreateBranch("release-1.0"); repo.Checkout("release-1.0"); repo.MakeCommits(5); return(repo); }, new Config())) { fixture.AssertFullSemver("1.0.0-beta.1+5"); fixture.AssertFullSemver("1.0.0-beta.1+5", fixture.LocalRepository); } }
public void GivenARemoteGitRepositoryWithCommitsAndBranches_ThenClonedLocalShouldMatchRemoteVersion() { using (var fixture = new RemoteRepositoryFixture( path => { Repository.Init(path); Console.WriteLine("Created git repository at '{0}'", path); var repo = new Repository(path); repo.MakeCommits(5); repo.CreateBranch("develop"); repo.CreateBranch("release-1.0"); repo.Checkout("release-1.0"); repo.MakeCommits(5); return repo; }, new Config())) { fixture.AssertFullSemver("1.0.0-beta.1+5"); fixture.AssertFullSemver("1.0.0-beta.1+5", fixture.LocalRepository); } }
public void BeingOnBuildServerWithOutputJsonAndOutputFileDoesNotFail(string outputFile, string fileName) { using var fixture = new RemoteRepositoryFixture(); fixture.Repository.MakeATaggedCommit("1.2.3"); fixture.Repository.MakeACommit(); var env = new KeyValuePair <string, string>(TeamCity.EnvironmentVariableName, "8.0.0"); var result = GitVersionHelper.ExecuteIn(fixture.LocalRepositoryFixture.RepositoryPath, arguments: $" /output json /output buildserver /output file /outputfile {outputFile}", environments: env); result.ExitCode.ShouldBe(0); const string version = "0.1.0+4"; result.Output.ShouldContain($"##teamcity[buildNumber '{version}']"); result.OutputVariables.ShouldNotBeNull(); result.OutputVariables.FullSemVer.ShouldBeEquivalentTo(version); var filePath = Path.Combine(fixture.LocalRepositoryFixture.RepositoryPath, fileName); var json = File.ReadAllText(filePath); var outputVariables = VersionVariables.FromJson(json); outputVariables.ShouldNotBeNull(); outputVariables.FullSemVer.ShouldBeEquivalentTo(version); }
public void GivenARemoteGitRepositoryWhenCheckingOutDetachedheadUsingTrackingBranchOnlyBehaviourShouldReturnVersion014Plus5() { using var fixture = new RemoteRepositoryFixture(); Commands.Checkout(fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Head.Tip); fixture.AssertFullSemver("0.1.0+4", fixture.LocalRepositoryFixture.Repository); }
public void GivenARemoteGitRepositoryWithCommits_ThenClonedLocalShouldMatchRemoteVersion() { using (var fixture = new RemoteRepositoryFixture()) { fixture.AssertFullSemver("0.1.0+4"); fixture.AssertFullSemver("0.1.0+4", fixture.LocalRepositoryFixture.Repository); } }
public void GivenARemoteGitRepositoryWithCommits_ThenClonedLocalShouldMatchRemoteVersion() { using (var fixture = new RemoteRepositoryFixture(new Config())) { fixture.AssertFullSemver("0.1.0+4"); fixture.AssertFullSemver("0.1.0+4", fixture.LocalRepository); } }
public void GivenARemoteGitRepositoryWhenCheckingOutDetachedhead_UsingTrackingBranchOnlyBehaviourShouldReturnVersion_0_1_4plus5() { using (var fixture = new RemoteRepositoryFixture(new Config())) { fixture.LocalRepository.Checkout(fixture.LocalRepository.Head.Tip); fixture.AssertFullSemver("0.1.0+4", fixture.LocalRepository); } }
public void GivenARemoteGitRepositoryWhenCheckingOutDetachedhead_UsingTrackingBranchOnlyBehaviourShouldReturnVersion_0_1_4plus5() { using (var fixture = new RemoteRepositoryFixture()) { fixture.LocalRepositoryFixture.Repository.Checkout(fixture.LocalRepositoryFixture.Repository.Head.Tip); fixture.AssertFullSemver("0.1.0+4", fixture.LocalRepositoryFixture.Repository); } }
public void GivenARemoteGitRepositoryWhenCheckingOutDetachedhead_UsingExistingImplementationThrowsException() { using (var fixture = new RemoteRepositoryFixture(new Config())) { fixture.IsForTrackedBranchOnly = false; fixture.LocalRepository.Checkout(fixture.LocalRepository.Head.Tip); Assert.Throws<WarningException>(() => fixture.AssertFullSemver("0.1.0+4", fixture.LocalRepository), "It looks like the branch being examined is a detached Head pointing to commit '{0}'. Without a proper branch name GitVersion cannot determine the build version.", fixture.LocalRepository.Head.Tip.Id.ToString(7)); } }
public void GivenARemoteGitRepositoryWhenCheckingOutDetachedhead_UsingExistingImplementationThrowsException() { using (var fixture = new RemoteRepositoryFixture(new Config())) { fixture.IsForTrackedBranchOnly = false; fixture.LocalRepository.Checkout(fixture.LocalRepository.Head.Tip); Assert.Throws <WarningException>(() => fixture.AssertFullSemver("0.1.0+4", fixture.LocalRepository), "It looks like the branch being examined is a detached Head pointing to commit '{0}'. Without a proper branch name GitVersion cannot determine the build version.", fixture.LocalRepository.Head.Tip.Id.ToString(7)); } }
public void GivenARemoteGitRepositoryWhenCheckingOutDetachedheadUsingExistingImplementationThrowsException() { using var fixture = new RemoteRepositoryFixture(); Commands.Checkout( fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Head.Tip); Should.Throw <WarningException>(() => fixture.AssertFullSemver("0.1.0+4", fixture.LocalRepositoryFixture.Repository, onlyTrackedBranches: false), $"It looks like the branch being examined is a detached Head pointing to commit '{fixture.LocalRepositoryFixture.Repository.Head.Tip.Id.ToString(7)}'. Without a proper branch name GitVersion cannot determine the build version."); }
public void TakesVersionFromNameOfRemoteReleaseBranchInOrigin() { using var fixture = new RemoteRepositoryFixture(); fixture.BranchTo("release/2.0.0"); fixture.MakeACommit(); Commands.Fetch((Repository)fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, new string[0], new FetchOptions(), null); fixture.LocalRepositoryFixture.Checkout("origin/release/2.0.0"); fixture.LocalRepositoryFixture.AssertFullSemver("2.0.0-beta.1+1"); }
public void TakesVersionFromNameOfRemoteReleaseBranchInOrigin() { using var fixture = new RemoteRepositoryFixture(); fixture.BranchTo("release/2.0.0"); fixture.MakeACommit(); Commands.Fetch((Repository)fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, Array.Empty <string>(), new FetchOptions(), null); fixture.LocalRepositoryFixture.MergeNoFF("origin/release/2.0.0"); fixture.LocalRepositoryFixture.AssertFullSemver("2.0.0+0"); }
public void GivenARemoteGitRepositoryAheadOfLocalRepository_ThenChangesShouldPull() { using (var fixture = new RemoteRepositoryFixture(new Config())) { fixture.Repository.MakeACommit(); fixture.AssertFullSemver("0.1.0+5"); fixture.AssertFullSemver("0.1.0+4", fixture.LocalRepository); fixture.LocalRepository.Network.Pull(fixture.LocalRepository.Config.BuildSignature(new DateTimeOffset(DateTime.Now)), new PullOptions()); fixture.AssertFullSemver("0.1.0+5", fixture.LocalRepository); } }
public void GivenARemoteGitRepositoryWithCommitsAndBranchesThenClonedLocalShouldMatchRemoteVersion() { const string targetBranch = "release-1.0"; using var fixture = new RemoteRepositoryFixture( path => { Repository.Init(path); Console.WriteLine("Created git repository at '{0}'", path); var repo = new Repository(path); repo.MakeCommits(5); repo.CreateBranch("develop"); repo.CreateBranch(targetBranch); Commands.Checkout(repo, targetBranch); repo.MakeCommits(5); return(repo); }); var gitVersionOptions = new GitVersionOptions { WorkingDirectory = fixture.LocalRepositoryFixture.RepositoryPath, RepositoryInfo = { TargetBranch = targetBranch }, Settings = { NoNormalize = false, NoFetch = false } }; var options = Options.Create(gitVersionOptions); var environment = new TestEnvironment(); environment.SetEnvironmentVariable(AzurePipelines.EnvironmentVariableName, "true"); var sp = ConfigureServices(services => { services.AddSingleton(options); services.AddSingleton <IEnvironment>(environment); }); var gitPreparer = sp.GetRequiredService <IGitPreparer>(); gitPreparer.Prepare(); fixture.AssertFullSemver("1.0.0-beta.1+5"); fixture.AssertFullSemver("1.0.0-beta.1+5", repository: fixture.LocalRepositoryFixture.Repository); }
public void GivenARemoteGitRepositoryAheadOfLocalRepositoryThenChangesShouldPull() { using var fixture = new RemoteRepositoryFixture(); fixture.Repository.MakeACommit(); fixture.AssertFullSemver("0.1.0+5"); fixture.AssertFullSemver("0.1.0+4", fixture.LocalRepositoryFixture.Repository); var buildSignature = fixture.LocalRepositoryFixture.Repository.Config.BuildSignature(new DateTimeOffset(DateTime.Now)); Commands.Pull((Repository)fixture.LocalRepositoryFixture.Repository, buildSignature, new PullOptions()); fixture.AssertFullSemver("0.1.0+5", fixture.LocalRepositoryFixture.Repository); }
public void GivenARemoteGitRepositoryAheadOfLocalRepository_ThenChangesShouldPull() { using (var fixture = new RemoteRepositoryFixture(new Config())) { fixture.Repository.MakeACommit(); fixture.AssertFullSemver("0.1.0+5"); fixture.AssertFullSemver("0.1.0+4", fixture.LocalRepository); fixture.LocalRepository.Network.Pull(fixture.LocalRepository.Config.BuildSignature(new DateTimeOffset(DateTime.Now)), new PullOptions()); fixture.AssertFullSemver("0.1.0+5", fixture.LocalRepository); } }
/// <summary> /// Simulates running on build server /// </summary> public static void InitializeRepo(this RemoteRepositoryFixture fixture) { var log = new NullLog(); var arguments = new Arguments { Authentication = new Authentication(), TargetPath = fixture.LocalRepositoryFixture.RepositoryPath }; new GitPreparer(log, new TestEnvironment(), Options.Create(arguments)).Prepare(true, null); }
public void BeingOnBuildServerDoesntOverrideOutputJson() { using var fixture = new RemoteRepositoryFixture(); fixture.Repository.MakeATaggedCommit("1.2.3"); fixture.Repository.MakeACommit(); var result = GitVersionHelper.ExecuteIn(fixture.LocalRepositoryFixture.RepositoryPath, arguments: " /output json", isTeamCity: true); result.ExitCode.ShouldBe(0); result.Output.ShouldStartWith("{"); result.Output.TrimEnd().ShouldEndWith("}"); }
public void DoesNotTakeVersionFromNameOfRemoteReleaseBranchInCustomRemote() { using var fixture = new RemoteRepositoryFixture(); fixture.LocalRepositoryFixture.Repository.Network.Remotes.Rename("origin", "upstream"); fixture.BranchTo("release/2.0.0"); fixture.MakeACommit(); Commands.Fetch((Repository)fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, new string[0], new FetchOptions(), null); fixture.LocalRepositoryFixture.Checkout("upstream/release/2.0.0"); fixture.LocalRepositoryFixture.AssertFullSemver("0.1.0-beta.1+5"); }
public void FindCommitBranchWasBranchedFromShouldReturnNullIfTheRemoteIsTheOnlySource() { using var fixture = new RemoteRepositoryFixture(); fixture.MakeACommit("initial"); var localRepository = fixture.LocalRepositoryFixture.Repository.ToGitRepository(); var gitRepoMetadataProvider = new RepositoryStore(this.log, localRepository, this.incrementStrategyFinder); var branchedCommit = gitRepoMetadataProvider.FindCommitBranchWasBranchedFrom(localRepository.FindBranch("main"), new Model.Configuration.Config(), Array.Empty <IBranch>()); Assert.IsNull(branchedCommit.Branch); Assert.IsNull(branchedCommit.Commit); }
public void BeingOnBuildServerDoesntOverrideOutputJson() { using (var fixture = new RemoteRepositoryFixture(new Config())) { fixture.Repository.MakeATaggedCommit("1.2.3"); fixture.Repository.MakeACommit(); var result = GitVersionHelper.ExecuteIn(fixture.LocalRepositoryFixture.RepositoryPath, arguments: " /output json", isTeamCity: true); result.ExitCode.ShouldBe(0); result.Output.ShouldStartWith("{"); result.Output.TrimEnd().ShouldEndWith("}"); } }
public void DoNotBlowUpWhenMasterAndDevelopPointAtSameCommit() { using var fixture = new RemoteRepositoryFixture(); fixture.Repository.MakeACommit(); fixture.Repository.MakeATaggedCommit("1.0.0"); fixture.Repository.MakeACommit(); fixture.Repository.CreateBranch("develop"); Commands.Fetch((Repository)fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, new string[0], new FetchOptions(), null); Commands.Checkout(fixture.LocalRepositoryFixture.Repository, fixture.Repository.Head.Tip); fixture.LocalRepositoryFixture.Repository.Branches.Remove("master"); fixture.InitializeRepo(); fixture.AssertFullSemver("1.0.1+1"); }
public void BeingOnBuildServerDoesntOverrideOutputJson() { using var fixture = new RemoteRepositoryFixture(); fixture.Repository.MakeATaggedCommit("1.2.3"); fixture.Repository.MakeACommit(); var env = new KeyValuePair <string, string>(TeamCity.EnvironmentVariableName, "8.0.0"); var result = GitVersionHelper.ExecuteIn(fixture.LocalRepositoryFixture.RepositoryPath, arguments: " /output json", environments: env); result.ExitCode.ShouldBe(0); result.Output.ShouldStartWith("{"); result.Output.TrimEnd().ShouldEndWith("}"); }
protected static RemoteRepositoryFixture CreateRemoteRepositoryFixture() { var fixture = new RemoteRepositoryFixture(); fixture.Repository.MakeACommit(); fixture.Repository.MakeATaggedCommit("1.0.0"); fixture.Repository.MakeACommit(); fixture.Repository.CreateBranch("develop"); Commands.Fetch((Repository)fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, new string[0], new FetchOptions(), null); Commands.Checkout(fixture.LocalRepositoryFixture.Repository, fixture.Repository.Head.Tip); fixture.LocalRepositoryFixture.Repository.Branches.Remove("master"); fixture.InitializeRepo(); return(fixture); }
public void CanTakeVersionFromNameOfRemoteReleaseBranch(string branchName, string expectedBaseVersion) { using var fixture = new RemoteRepositoryFixture(); var branch = fixture.Repository.CreateBranch(branchName); Commands.Checkout(fixture.Repository, branch); fixture.MakeACommit(); Commands.Fetch((Repository)fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, new string[0], new FetchOptions(), null); fixture.LocalRepositoryFixture.Checkout($"origin/{branchName}"); var strategy = GetVersionStrategy(fixture.RepositoryPath, fixture.Repository, branchName); var baseVersion = strategy.GetVersions().Single(); baseVersion.SemanticVersion.ToString().ShouldBe(expectedBaseVersion); }
public void DoNotBlowUpWhenDevelopAndFeatureBranchPointAtSameCommit() { using var fixture = new RemoteRepositoryFixture(); fixture.Repository.MakeACommit(); Commands.Checkout(fixture.Repository, fixture.Repository.CreateBranch("develop")); fixture.Repository.MakeACommit(); fixture.Repository.MakeATaggedCommit("1.0.0"); fixture.Repository.MakeACommit(); fixture.Repository.CreateBranch("feature/someFeature"); Commands.Fetch((Repository)fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, Array.Empty <string>(), new FetchOptions(), null); Commands.Checkout(fixture.LocalRepositoryFixture.Repository, fixture.Repository.Head.Tip); fixture.LocalRepositoryFixture.Repository.Branches.Remove(MainBranch); fixture.InitializeRepo(); fixture.AssertFullSemver("1.1.0-alpha.1"); }
public void DoNotBlowUpWhenMasterAndDevelopPointAtSameCommit() { using (var fixture = new RemoteRepositoryFixture(new Config())) { fixture.Repository.MakeACommit(); fixture.Repository.MakeATaggedCommit("1.0.0"); fixture.Repository.MakeACommit(); fixture.Repository.CreateBranch("develop"); fixture.LocalRepositoryFixture.Repository.Network.Fetch(fixture.LocalRepositoryFixture.Repository.Network.Remotes.First()); fixture.LocalRepositoryFixture.Repository.Checkout(fixture.Repository.Head.Tip); fixture.LocalRepositoryFixture.Repository.Branches.Remove("master"); fixture.InitialiseRepo(); fixture.AssertFullSemver("1.0.1+1"); } }
public void DoNotBlowUpWhenMasterAndDevelopPointAtSameCommit() { using (var fixture = new RemoteRepositoryFixture(new Config())) { fixture.Repository.MakeACommit(); fixture.Repository.MakeATaggedCommit("1.0.0"); fixture.Repository.MakeACommit(); fixture.Repository.CreateBranch("develop"); fixture.LocalRepository.Network.Fetch(fixture.LocalRepository.Network.Remotes.First()); fixture.LocalRepository.Checkout(fixture.Repository.Head.Tip); fixture.LocalRepository.Branches.Remove("master"); fixture.InitialiseRepo(); fixture.AssertFullSemver("1.0.1+1"); } }
public void BeingOnBuildServerWithOutputJsonDoesNotFail() { using var fixture = new RemoteRepositoryFixture(); fixture.Repository.MakeATaggedCommit("1.2.3"); fixture.Repository.MakeACommit(); var env = new KeyValuePair <string, string?>(TeamCity.EnvironmentVariableName, "8.0.0"); var result = GitVersionHelper.ExecuteIn(fixture.LocalRepositoryFixture.RepositoryPath, arguments: " /output json /output buildserver", environments: env); result.ExitCode.ShouldBe(0); const string version = "0.1.0+4"; result.Output.ShouldContain($"##teamcity[buildNumber '{version}']"); result.OutputVariables.ShouldNotBeNull(); result.OutputVariables.FullSemVer.ShouldBeEquivalentTo(version); }
public void CanTakeVersionFromNameOfRemoteReleaseBranch(string branchName, string expectedBaseVersion) { using var fixture = new RemoteRepositoryFixture(); var branch = fixture.Repository.CreateBranch(branchName); Commands.Checkout(fixture.Repository, branch); fixture.MakeACommit(); Commands.Fetch((Repository)fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, new string[0], new FetchOptions(), null); fixture.LocalRepositoryFixture.Checkout($"origin/{branchName}"); var sut = new VersionInBranchNameVersionStrategy(); var gitVersionContext = new GitVersionContext(fixture.Repository, new NullLog(), branch, new Config().ApplyDefaults()); var baseVersion = sut.GetVersions(gitVersionContext).Single(); baseVersion.SemanticVersion.ToString().ShouldBe(expectedBaseVersion); }
/// <summary> /// Simulates running on build server /// </summary> public static void InitializeRepo(this RemoteRepositoryFixture fixture) { var arguments = new Arguments { Authentication = new Authentication(), TargetPath = fixture.LocalRepositoryFixture.RepositoryPath }; var options = Options.Create(arguments); var serviceProvider = ConfigureService(services => { services.AddSingleton(options); }); var gitPreparer = serviceProvider.GetService <IGitPreparer>(); gitPreparer.Prepare(true, null); }
public void DoNotBlowUpWhenDevelopAndFeatureBranchPointAtSameCommit() { using (var fixture = new RemoteRepositoryFixture()) { fixture.Repository.MakeACommit(); fixture.Repository.Checkout(fixture.Repository.CreateBranch("develop")); fixture.Repository.MakeACommit(); fixture.Repository.MakeATaggedCommit("1.0.0"); fixture.Repository.MakeACommit(); fixture.Repository.CreateBranch("feature/someFeature"); fixture.LocalRepositoryFixture.Repository.Network.Fetch(fixture.LocalRepositoryFixture.Repository.Network.Remotes.First()); fixture.LocalRepositoryFixture.Repository.Checkout(fixture.Repository.Head.Tip); fixture.LocalRepositoryFixture.Repository.Branches.Remove("master"); fixture.InitialiseRepo(); fixture.AssertFullSemver("1.1.0-unstable.1"); } }
/// <summary> /// Simulates running on build server /// </summary> public static void InitializeRepo(this RemoteRepositoryFixture fixture) { var gitVersionOptions = new GitVersionOptions { WorkingDirectory = fixture.LocalRepositoryFixture.RepositoryPath }; var options = Options.Create(gitVersionOptions); var environment = new TestEnvironment(); environment.SetEnvironmentVariable(AzurePipelines.EnvironmentVariableName, "true"); var serviceProvider = ConfigureServices(services => { services.AddSingleton(options); services.AddSingleton(environment); }); var gitPreparer = serviceProvider.GetService <IGitPreparer>(); gitPreparer.Prepare(); }