Skip to content

Commit

Permalink
(cake-contribGH-214) Add possibility to overwrite context parameters …
Browse files Browse the repository at this point in the history
…and state
  • Loading branch information
pascalberger committed Aug 9, 2021
1 parent 1588a57 commit 8574940
Show file tree
Hide file tree
Showing 25 changed files with 332 additions and 159 deletions.
Expand Up @@ -15,7 +15,7 @@ internal class AppVeyorBuildServer : BaseBuildServer
{
/// <inheritdoc />
public override Uri DetermineRepositoryRemoteUrl(
IssuesContext context,
IIssuesContext context,
DirectoryPath repositoryRootDirectory)
{
context.NotNull(nameof(context));
Expand All @@ -32,7 +32,7 @@ internal class AppVeyorBuildServer : BaseBuildServer

/// <inheritdoc />
public override string DetermineCommitId(
IssuesContext context,
IIssuesContext context,
DirectoryPath repositoryRootDirectory)
{
context.NotNull(nameof(context));
Expand All @@ -41,15 +41,15 @@ internal class AppVeyorBuildServer : BaseBuildServer
}

/// <inheritdoc />
public override bool DetermineIfPullRequest(IssuesContext context)
public override bool DetermineIfPullRequest(IIssuesContext context)
{
context.NotNull(nameof(context));

return context.AppVeyor().Environment.PullRequest.IsPullRequest;
}

/// <inheritdoc />
public override int? DeterminePullRequestId(IssuesContext context)
public override int? DeterminePullRequestId(IIssuesContext context)
{
context.NotNull(nameof(context));

Expand All @@ -58,7 +58,7 @@ public override bool DetermineIfPullRequest(IssuesContext context)

/// <inheritdoc />
public override void ReportIssuesToBuildServer(
IssuesContext context)
IIssuesContext context)
{
context.NotNull(nameof(context));

Expand All @@ -70,7 +70,7 @@ public override bool DetermineIfPullRequest(IssuesContext context)

/// <inheritdoc />
public override void CreateSummaryIssuesReport(
IssuesContext context,
IIssuesContext context,
[System.Runtime.CompilerServices.CallerFilePath] string sourceFilePath = "")
{
context.NotNull(nameof(context));
Expand All @@ -79,7 +79,7 @@ public override bool DetermineIfPullRequest(IssuesContext context)
}

/// <inheritdoc />
public override void PublishIssuesArtifacts(IssuesContext context)
public override void PublishIssuesArtifacts(IIssuesContext context)
{
context.NotNull(nameof(context));

Expand Down
Expand Up @@ -18,7 +18,7 @@ internal class AzureDevOpsBuildServer : BaseBuildServer
{
/// <inheritdoc />
public override Uri DetermineRepositoryRemoteUrl(
IssuesContext context,
IIssuesContext context,
DirectoryPath repositoryRootDirectory)
{
context.NotNull(nameof(context));
Expand All @@ -28,7 +28,7 @@ internal class AzureDevOpsBuildServer : BaseBuildServer

/// <inheritdoc />
public override string DetermineCommitId(
IssuesContext context,
IIssuesContext context,
DirectoryPath repositoryRootDirectory)
{
context.NotNull(nameof(context));
Expand All @@ -37,7 +37,7 @@ internal class AzureDevOpsBuildServer : BaseBuildServer
}

/// <inheritdoc />
public override bool DetermineIfPullRequest(IssuesContext context)
public override bool DetermineIfPullRequest(IIssuesContext context)
{
context.NotNull(nameof(context));

Expand All @@ -46,7 +46,7 @@ public override bool DetermineIfPullRequest(IssuesContext context)
}

/// <inheritdoc />
public override int? DeterminePullRequestId(IssuesContext context)
public override int? DeterminePullRequestId(IIssuesContext context)
{
context.NotNull(nameof(context));

Expand All @@ -62,7 +62,7 @@ public override bool DetermineIfPullRequest(IssuesContext context)

/// <inheritdoc />
public override void ReportIssuesToBuildServer(
IssuesContext context)
IIssuesContext context)
{
context.NotNull(nameof(context));

Expand All @@ -80,7 +80,7 @@ public override bool DetermineIfPullRequest(IssuesContext context)

/// <inheritdoc />
public override void CreateSummaryIssuesReport(
IssuesContext context,
IIssuesContext context,
[System.Runtime.CompilerServices.CallerFilePath] string sourceFilePath = "")
{
context.NotNull(nameof(context));
Expand Down Expand Up @@ -116,7 +116,7 @@ public override bool DetermineIfPullRequest(IssuesContext context)
}

/// <inheritdoc />
public override void PublishIssuesArtifacts(IssuesContext context)
public override void PublishIssuesArtifacts(IIssuesContext context)
{
context.NotNull(nameof(context));

Expand Down
Expand Up @@ -11,7 +11,7 @@ internal abstract class BaseBuildServer : IIssuesBuildServer
{
/// <inheritdoc />
public virtual Uri DetermineRepositoryRemoteUrl(
IssuesContext context,
IIssuesContext context,
DirectoryPath repositoryRootDirectory)
{
context.NotNull(nameof(context));
Expand All @@ -22,7 +22,7 @@ internal abstract class BaseBuildServer : IIssuesBuildServer

/// <inheritdoc />
public virtual string DetermineCommitId(
IssuesContext context,
IIssuesContext context,
DirectoryPath repositoryRootDirectory)
{
context.NotNull(nameof(context));
Expand All @@ -32,15 +32,15 @@ internal abstract class BaseBuildServer : IIssuesBuildServer
}

/// <inheritdoc />
public virtual bool DetermineIfPullRequest(IssuesContext context)
public virtual bool DetermineIfPullRequest(IIssuesContext context)
{
context.NotNull(nameof(context));

return false;
}

/// <inheritdoc />
public virtual int? DeterminePullRequestId(IssuesContext context)
public virtual int? DeterminePullRequestId(IIssuesContext context)
{
context.NotNull(nameof(context));

Expand All @@ -49,15 +49,15 @@ public virtual bool DetermineIfPullRequest(IssuesContext context)

/// <inheritdoc />
public abstract void ReportIssuesToBuildServer(
IssuesContext context);
IIssuesContext context);

/// <inheritdoc />
public abstract void CreateSummaryIssuesReport(
IssuesContext context,
IIssuesContext context,
[System.Runtime.CompilerServices.CallerFilePath] string sourceFilePath = "");

/// <inheritdoc />
public abstract void PublishIssuesArtifacts(
IssuesContext context);
IIssuesContext context);
}
}
Expand Up @@ -14,7 +14,7 @@ internal class GitHubActionsBuildServer : BaseBuildServer
{
/// <inheritdoc />
public override Uri DetermineRepositoryRemoteUrl(
IssuesContext context,
IIssuesContext context,
DirectoryPath repositoryRootDirectory)
{
context.NotNull(nameof(context));
Expand All @@ -24,7 +24,7 @@ internal class GitHubActionsBuildServer : BaseBuildServer

/// <inheritdoc />
public override string DetermineCommitId(
IssuesContext context,
IIssuesContext context,
DirectoryPath repositoryRootDirectory)
{
context.NotNull(nameof(context));
Expand All @@ -33,15 +33,15 @@ internal class GitHubActionsBuildServer : BaseBuildServer
}

/// <inheritdoc />
public override bool DetermineIfPullRequest(IssuesContext context)
public override bool DetermineIfPullRequest(IIssuesContext context)
{
context.NotNull(nameof(context));

return context.GitHubActions().Environment.PullRequest.IsPullRequest;
}

/// <inheritdoc />
public override int? DeterminePullRequestId(IssuesContext context)
public override int? DeterminePullRequestId(IIssuesContext context)
{
context.NotNull(nameof(context));

Expand All @@ -51,7 +51,7 @@ public override bool DetermineIfPullRequest(IssuesContext context)

/// <inheritdoc />
public override void ReportIssuesToBuildServer(
IssuesContext context)
IIssuesContext context)
{
context.NotNull(nameof(context));

Expand All @@ -63,7 +63,7 @@ public override bool DetermineIfPullRequest(IssuesContext context)

/// <inheritdoc />
public override void CreateSummaryIssuesReport(
IssuesContext context,
IIssuesContext context,
[System.Runtime.CompilerServices.CallerFilePath] string sourceFilePath = "")
{
context.NotNull(nameof(context));
Expand All @@ -72,7 +72,7 @@ public override bool DetermineIfPullRequest(IssuesContext context)
}

/// <inheritdoc />
public override void PublishIssuesArtifacts(IssuesContext context)
public override void PublishIssuesArtifacts(IIssuesContext context)
{
context.NotNull(nameof(context));

Expand Down
Expand Up @@ -15,7 +15,7 @@ public interface IIssuesBuildServer
/// <param name="repositoryRootDirectory">The root directory of the repository.</param>
/// <returns>The remote URL of the repository.</returns>
Uri DetermineRepositoryRemoteUrl(
IssuesContext context,
IIssuesContext context,
DirectoryPath repositoryRootDirectory);

/// <summary>
Expand All @@ -25,44 +25,44 @@ public interface IIssuesBuildServer
/// <param name="repositoryRootDirectory">The root directory of the repository.</param>
/// <returns>The SHA ID of the current commit.</returns>
string DetermineCommitId(
IssuesContext context,
IIssuesContext context,
DirectoryPath repositoryRootDirectory);

/// <summary>
/// Determines whether the build is for a pull request.
/// </summary>
/// <param name="context">The Cake context.</param>
/// <returns>A value indicating whether the build is for a pull request.</returns>
bool DetermineIfPullRequest(IssuesContext context);
bool DetermineIfPullRequest(IIssuesContext context);

/// <summary>
/// Determines ID of the pull request.
/// </summary>
/// <param name="context">The Cake context.</param>
/// <returns>ID of the pull request.</returns>
int? DeterminePullRequestId(IssuesContext context);
int? DeterminePullRequestId(IIssuesContext context);

/// <summary>
/// Reports issues to the build server.
/// </summary>
/// <param name="context">The Cake context.</param>
void ReportIssuesToBuildServer(
IssuesContext context);
IIssuesContext context);

/// <summary>
/// Creates a summary report of the issues.
/// </summary>
/// <param name="context">The Cake context.</param>
/// <param name="sourceFilePath">Path of the file.</param>
void CreateSummaryIssuesReport(
IssuesContext context,
IIssuesContext context,
[System.Runtime.CompilerServices.CallerFilePath] string sourceFilePath = "");

/// <summary>
/// Publishes issues report as artifact to the build system.
/// </summary>
/// <param name="context">The Cake context.</param>
void PublishIssuesArtifacts(
IssuesContext context);
IIssuesContext context);
}
}
@@ -0,0 +1,18 @@
namespace Cake.Frosting.Issues.Recipe
{
/// <summary>
/// Description of parameters and state for the build run.
/// </summary>
public interface IIssuesContext : IFrostingContext
{
/// <summary>
/// Gets input parameters.
/// </summary>
IIssuesParameters Parameters { get; }

/// <summary>
/// Gets the mutable state of the build run.
/// </summary>
IIssuesState State { get; }
}
}
@@ -1,21 +1,13 @@
using Cake.Core;
using Cake.Core;

namespace Cake.Frosting.Issues.Recipe
{
/// <summary>
/// Parameters and state for the build run.
/// </summary>
public class IssuesContext : FrostingContext
public class IssuesContext : IssuesContext<IssuesParameters, IssuesState>
{
/// <summary>
/// Input parameters.
/// </summary>
public IssuesParameters Parameters { get; }

/// <summary>
/// Mutable state of the build run.
/// </summary>
public IssuesState State { get; }
private readonly RepositoryInfoProviderType repositoryInfoProviderType;

/// <summary>
/// Creates a new instance of the <see cref="IssuesContext"/> class.
Expand All @@ -27,8 +19,19 @@ public class IssuesContext : FrostingContext
RepositoryInfoProviderType repositoryInfoProviderType)
: base(context)
{
this.Parameters = new IssuesParameters();
this.State = new IssuesState(this, repositoryInfoProviderType);
this.repositoryInfoProviderType = repositoryInfoProviderType;
}

/// <inheritdoc />
protected override IssuesParameters CreateIssuesParameters()
{
return new IssuesParameters();
}

/// <inheritdoc />
protected override IssuesState CreateIssuesState()
{
return new IssuesState(this, this.repositoryInfoProviderType);
}
}
}
}

0 comments on commit 8574940

Please sign in to comment.