/// <summary> /// Determines the build server on which the build is running. /// </summary> /// <param name="context">The Cake context.</param> /// <returns>The build server on which the build is running or <c>null</c> if unknown build server.</returns> private static IIssuesBuildServer DetermineBuildServer(IssuesContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } // Could be simplified once https://github.com/cake-build/cake/issues/1684 / https://github.com/cake-build/cake/issues/1580 are fixed. if (!string.IsNullOrWhiteSpace(context.EnvironmentVariable("TF_BUILD")) && !string.IsNullOrWhiteSpace(context.EnvironmentVariable("SYSTEM_COLLECTIONURI")) && ( new Uri(context.EnvironmentVariable("SYSTEM_COLLECTIONURI")).Host == "dev.azure.com" || new Uri(context.EnvironmentVariable("SYSTEM_COLLECTIONURI")).Host.EndsWith("visualstudio.com", StringComparison.InvariantCulture) )) { context.Information("Build server detected: {0}", "Azure Pipelines"); return(new AzureDevOpsBuildServer()); } if (context.AppVeyor().IsRunningOnAppVeyor) { context.Information("Build server detected: {0}", "AppVeyor"); return(new AppVeyorBuildServer()); } if (context.GitHubActions().IsRunningOnGitHubActions) { context.Information("Build server detected: {0}", "GitHub Actions"); return(new GitHubActionsBuildServer()); } return(null); }
/// <inheritdoc /> public override string DetermineCommitId( IssuesContext context, DirectoryPath repositoryRootDirectory) { context.NotNull(nameof(context)); return(context.AppVeyor().Environment.Repository.Commit.Id); }
/// <inheritdoc /> public override void PublishIssuesArtifacts(IssuesContext context) { context.NotNull(nameof(context)); if (context.Parameters.BuildServer.ShouldPublishFullIssuesReport && context.State.FullIssuesReport != null && context.FileExists(context.State.FullIssuesReport)) { context.AppVeyor().UploadArtifact(context.State.FullIssuesReport); } }
/// <inheritdoc /> public override Uri DetermineRepositoryRemoteUrl( IssuesContext context, DirectoryPath repositoryRootDirectory) { context.NotNull(nameof(context)); switch (context.AppVeyor().Environment.Repository.Provider) { case "bitBucket": return(new Uri($"https://bitbucket.org/{context.AppVeyor().Environment.Repository.Name}/src")); case "gitHub": return(new Uri($"https://github.com/{context.AppVeyor().Environment.Repository.Name}.git")); case "gitLab": return(new Uri($"https://gitlab.com/{context.AppVeyor().Environment.Repository.Name}.git")); case "vso": return(new Uri($"https://dev.azure.com/{context.AppVeyor().Environment.Repository.Name}")); default: return(new Uri(context.AppVeyor().Environment.Repository.Name)); } }
/// <inheritdoc /> public override int?DeterminePullRequestId(IssuesContext context) { context.NotNull(nameof(context)); return(context.AppVeyor().Environment.PullRequest.Number); }
/// <inheritdoc /> public override bool DetermineIfPullRequest(IssuesContext context) { context.NotNull(nameof(context)); return(context.AppVeyor().Environment.PullRequest.IsPullRequest); }