tools/pipeline-generator/Azure.Sdk.Tools.PipelineGenerator/Conventions/UnifiedPipelineConvention.cs (36 lines of code) (raw):
using Microsoft.Extensions.Logging;
using Microsoft.TeamFoundation.Build.WebApi;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PipelineGenerator.Conventions
{
public class UnifiedPipelineConvention : PipelineConvention
{
public UnifiedPipelineConvention(ILogger logger, PipelineGenerationContext context) : base(logger, context)
{
}
public override string SearchPattern => "ci.yml";
public override string PipelineNameSuffix => "";
public override string PipelineCategory => "unified";
protected override async Task<bool> ApplyConventionAsync(BuildDefinition definition, SdkComponent component)
{
var hasChanges = await base.ApplyConventionAsync(definition, component);
if (EnsureDefaultPullRequestTrigger(definition, overrideYaml: true, securePipeline: true))
{
hasChanges = true;
}
if (EnsureDefaultCITrigger(definition))
{
hasChanges = true;
}
if (!Context.NoSchedule && EnsureDefaultScheduledTrigger(definition))
{
hasChanges = true;
}
return hasChanges;
}
}
}