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 && p.RepositoryName == buildConfig.GitRepository.Name &&
buildSucceededProjects.Contains(p.CsProjPath) buildSucceededProjects.Contains(p.CsProjPath)
) )
.Select(e => new DotNetProjectBuildStatus() .Select(e => new DotNetProjectBuildStatus
{ {
CsProjPath = e.CsProjPath, CsProjPath = e.CsProjPath,
CommitId = lastCommitId CommitId = lastCommitId

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

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

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

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