From e177de6765c935a9649a6af37cc0bc714671f64c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0smail=20=C3=87A=C4=9EDA=C5=9E?= Date: Tue, 15 Sep 2020 10:58:43 +0300 Subject: [PATCH] consider cshtml file changes to rebuild a solution --- .../Cli/Build/DefaultChangedProjectFinder.cs | 22 +++++++++++++++---- .../Volo/Abp/Cli/Commands/BuildCommand.cs | 5 +---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Build/DefaultChangedProjectFinder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Build/DefaultChangedProjectFinder.cs index 27b67ceca5..26ce415267 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Build/DefaultChangedProjectFinder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Build/DefaultChangedProjectFinder.cs @@ -12,7 +12,13 @@ namespace Volo.Abp.Cli.Build { private readonly IRepositoryBuildStatusStore _repositoryBuildStatusStore; private readonly IGitRepositoryHelper _gitRepositoryHelper; - + private readonly List _changeDetectionFileExtensions = new List + { + ".cs", + ".csproj", + ".cshtml" + }; + public DefaultChangedProjectFinder( IRepositoryBuildStatusStore repositoryBuildStatusStore, IGitRepositoryHelper gitRepositoryHelper) @@ -205,19 +211,27 @@ namespace Volo.Abp.Cli.Build ? null : repo.Lookup(status.CommitId); var repoDifferences = repo.Diff.Compare(firstCommit?.Tree, repo.Head.Tip.Tree); + + var fileExtensionPredicate = PredicateBuilder.New(true); + foreach (var changeDetectionFileExtension in _changeDetectionFileExtensions) + { + fileExtensionPredicate = fileExtensionPredicate.And(e => e.Path.EndsWith(changeDetectionFileExtension)); + } + var files = repoDifferences - .Where(e => e.Path.EndsWith(".cs") || e.Path.EndsWith(".csproj")) + .Where(fileExtensionPredicate) .Where(e => e.Status != ChangeKind.Deleted) .Select(e => e) .ToList(); var affectedCsProjFiles = FindAffectedCsProjFiles(repository.RootPath, files); - + var lastCommitId = _gitRepositoryHelper.GetLastCommitId(repository); + foreach (var file in affectedCsProjFiles) { var csProjPath = Path.Combine(repository.RootPath, file); - if (status.SucceedProjects.Any(p => p.CsProjPath == csProjPath && p.CommitId == "1")) + if (status.SucceedProjects.Any(p => p.CsProjPath == csProjPath && p.CommitId == lastCommitId)) { continue; } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/BuildCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/BuildCommand.cs index d61f341ffe..f0cbab8708 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/BuildCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/BuildCommand.cs @@ -3,7 +3,6 @@ using System.Diagnostics; using System.IO; using System.Text; using System.Threading.Tasks; -using Microsoft.Extensions.Logging; using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Build; using Volo.Abp.DependencyInjection; @@ -12,8 +11,6 @@ namespace Volo.Abp.Cli.Commands { public class BuildCommand : IConsoleCommand, ITransientDependency { - public ILogger Logger { get; set; } - public IDotNetProjectDependencyFiller DotNetProjectDependencyFiller { get; set; } public IChangedProjectFinder ChangedProjectFinder { get; set; } @@ -79,7 +76,7 @@ namespace Volo.Abp.Cli.Commands changedProjectFiles, buildSucceededProjects ); - + RepositoryBuildStatusStore.Set(buildName, buildConfig.GitRepository, buildStatus); sw.Stop();