Skip to content

Commit c658390

Browse files
Fix repository root determination order before calling projectRootDirectoryProvider (#624)
Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: Pascal Berger <[email protected]>
1 parent 77ceccd commit c658390

File tree

3 files changed

+30
-6
lines changed

3 files changed

+30
-6
lines changed

Cake.Frosting.Issues.Recipe/Cake.Frosting.Issues.Recipe.Tests/Context/State/IssuesStateTests.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,29 @@ DirectoryPath customProvider(IIssuesState state)
6969
// Then
7070
capturedState.ShouldNotBeNull().ShouldBe(state);
7171
}
72+
73+
[Fact]
74+
public void Should_Have_Repository_Root_Directory_Available_In_Provider_Function()
75+
{
76+
// Given
77+
var fixture = new CakeContextFixture();
78+
79+
DirectoryPath capturedRepositoryRoot = null;
80+
DirectoryPath customProvider(IIssuesState state)
81+
{
82+
capturedRepositoryRoot = state.RepositoryRootDirectory;
83+
return state.BuildRootDirectory;
84+
}
85+
86+
// When
87+
var state = new IssuesState(
88+
fixture.CreateContext(),
89+
RepositoryInfoProviderType.CakeGit,
90+
customProvider);
91+
92+
// Then
93+
capturedRepositoryRoot.ShouldNotBeNull()
94+
.ShouldBe(state.RepositoryRootDirectory);
95+
}
7296
}
7397
}

Cake.Frosting.Issues.Recipe/Cake.Frosting.Issues.Recipe/Context/State/IssuesState.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,14 @@ public IssuesState(
7676
this.BuildRootDirectory = context.MakeAbsolute(context.Directory("./"));
7777
context.Information("Build script root directory: {0}", this.BuildRootDirectory);
7878

79-
this.ProjectRootDirectory = projectRootDirectoryProvider?.Invoke(this) ?? this.BuildRootDirectory.Combine("..").Collapse();
80-
context.Information("Project root directory: {0}", this.ProjectRootDirectory);
81-
8279
this.RepositoryInfo = DetermineRepositoryInfoProvider(context, repositoryInfoProviderType);
8380

8481
this.RepositoryRootDirectory = this.RepositoryInfo.GetRepositoryRootDirectory(context, this.BuildRootDirectory);
8582
context.Information("Repository root directory: {0}", this.RepositoryRootDirectory);
8683

84+
this.ProjectRootDirectory = projectRootDirectoryProvider?.Invoke(this) ?? this.BuildRootDirectory.Combine("..").Collapse();
85+
context.Information("Project root directory: {0}", this.ProjectRootDirectory);
86+
8787
this.BuildServer = DetermineBuildServer(context);
8888
if (this.BuildServer != null)
8989
{

Cake.Issues.Recipe/Content/data/IssuesData.cake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,14 @@ public class IssuesData
105105
this.BuildRootDirectory = context.MakeAbsolute(context.Directory("./"));
106106
context.Information("Build script root directory: {0}", this.BuildRootDirectory);
107107

108-
this.ProjectRootDirectory = projectRootDirectoryProvider?.Invoke(this) ?? this.BuildRootDirectory;
109-
context.Information("Project root directory: {0}", this.ProjectRootDirectory);
110-
111108
this.RepositoryInfo = DetermineRepositoryInfoProvider(context, repositoryInfoProviderType);
112109

113110
this.RepositoryRootDirectory = context.GitFindRootFromPath(this.BuildRootDirectory);
114111
context.Information("Repository root directory: {0}", this.RepositoryRootDirectory);
115112

113+
this.ProjectRootDirectory = projectRootDirectoryProvider?.Invoke(this) ?? this.BuildRootDirectory;
114+
context.Information("Project root directory: {0}", this.ProjectRootDirectory);
115+
116116
this.BuildServer = DetermineBuildServer(context);
117117
if (this.BuildServer != null)
118118
{

0 commit comments

Comments
 (0)