correctly update repository commitId when building projects

pull/5418/head
İsmail ÇAĞDAŞ 5 years ago
parent 0598b8e45a
commit 7d551758f6

@ -0,0 +1,4 @@
{
"Name": "abp",
"RootPath": "D:\\GitHub\\abp"
}

@ -37,7 +37,7 @@ namespace Volo.Abp.Cli.Build
p.RepositoryName == buildConfig.GitRepository.Name &&
buildSucceededProjects.Contains(p.CsProjPath)
)
.Select(e => new DotNetProjectBuildStatus()
.Select(e => new DotNetProjectBuildStatus
{
CsProjPath = e.CsProjPath,
CommitId = lastCommitId

@ -29,8 +29,7 @@ namespace Volo.Abp.Cli.Build
{
continue;
}
// TODO: use parallel foreach here.
foreach (var projectDependency in project.Dependencies)
{
if (builtProjects.Contains(project.CsProjPath))

@ -85,6 +85,11 @@ namespace Volo.Abp.Cli.Build
public void MergeWith(GitRepositoryBuildStatus newBuildStatus)
{
if (!newBuildStatus.CommitId.IsNullOrEmpty())
{
CommitId = newBuildStatus.CommitId;
}
foreach (var succeedProject in newBuildStatus.SucceedProjects)
{
AddOrUpdateProjectStatus(succeedProject);

@ -27,7 +27,7 @@ namespace Volo.Abp.Cli.Commands
public IBuildStatusGenerator BuildStatusGenerator { get; set; }
public IBuildProjectListSorter BuildProjectListSorter { get; set; }
public Task ExecuteAsync(CommandLineArgs commandLineArgs)
{
var sw = new Stopwatch();
@ -73,13 +73,13 @@ namespace Volo.Abp.Cli.Commands
string.IsNullOrEmpty(maxParallelBuild) ? 1 : Convert.ToInt32(maxParallelBuild),
dotnetBuildArguments ?? ""
);
var buildStatus = BuildStatusGenerator.Generate(
buildConfig,
changedProjectFiles,
buildSucceededProjects
);
RepositoryBuildStatusStore.Set(buildName, buildConfig.GitRepository, buildStatus);
sw.Stop();
@ -87,7 +87,7 @@ namespace Volo.Abp.Cli.Commands
return Task.CompletedTask;
}
public string GetUsageInfo()
{
var sb = new StringBuilder();

@ -54,6 +54,7 @@ namespace Volo.Abp.Cli.Build
status.CommitId.ShouldBe(lastCommitId);
}
[Fact]
public void Should_Set_Repository_CommitId_When_All_Projects_Built_For_Child_Repository()
{

@ -1,5 +1,7 @@
using System.Collections.Generic;
using System.Linq;
using Microsoft.Extensions.DependencyInjection;
using NSubstitute;
using Shouldly;
using Xunit;
@ -7,6 +9,14 @@ namespace Volo.Abp.Cli.Build
{
public class GitRepositoryBuildStatus_Tests : AbpCliTestBase
{
private IGitRepositoryHelper _gitRepositoryHelper;
protected override void AfterAddApplication(IServiceCollection services)
{
_gitRepositoryHelper = Substitute.For<IGitRepositoryHelper>();
services.AddTransient(provider => _gitRepositoryHelper);
}
[Fact]
public void Add_New_Build_Status_Test()
{
@ -128,5 +138,44 @@ namespace Volo.Abp.Cli.Build
existingBuildStatus.MergeWith(newBuildStatus);
existingBuildStatus.GetChild("abp").SucceedProjects.Count.ShouldBe(2);
}
[Fact]
public void Should_Update_Repository_CommitId_When_New_CommitId_Is_Not_Empty()
{
var existingBuildStatus = new GitRepositoryBuildStatus("volo", "dev");
var newBuildStatus = new GitRepositoryBuildStatus(
existingBuildStatus.RepositoryName,
existingBuildStatus.BranchName
)
{
CommitId = "42"
};
existingBuildStatus.MergeWith(newBuildStatus);
existingBuildStatus.CommitId.ShouldBe("42");
}
[Fact]
public void Should_Not_Update_Repository_CommitId_When_New_CommitId_Is_Empty()
{
var existingBuildStatus = new GitRepositoryBuildStatus("volo", "dev")
{
CommitId = "21"
};
var newBuildStatus = new GitRepositoryBuildStatus(
existingBuildStatus.RepositoryName,
existingBuildStatus.BranchName
)
{
CommitId = ""
};
existingBuildStatus.MergeWith(newBuildStatus);
existingBuildStatus.CommitId.ShouldBe("21");
}
}
}

Loading…
Cancel
Save