diff --git a/arcade-services.sln b/arcade-services.sln index 916acf4af6..9b923fd3bc 100644 --- a/arcade-services.sln +++ b/arcade-services.sln @@ -214,6 +214,7 @@ Global {37D70EEA-9621-44EB-921A-5D303917F851}.Release|x86.Build.0 = Release|Any CPU {93F066A5-A2D8-4926-A255-81077AEE5972}.Debug|Any CPU.ActiveCfg = Debug|x64 {93F066A5-A2D8-4926-A255-81077AEE5972}.Debug|Any CPU.Build.0 = Debug|x64 + {93F066A5-A2D8-4926-A255-81077AEE5972}.Debug|Any CPU.Deploy.0 = Debug|x64 {93F066A5-A2D8-4926-A255-81077AEE5972}.Debug|x64.ActiveCfg = Debug|x64 {93F066A5-A2D8-4926-A255-81077AEE5972}.Debug|x64.Build.0 = Debug|x64 {93F066A5-A2D8-4926-A255-81077AEE5972}.Debug|x64.Deploy.0 = Debug|x64 diff --git a/src/Maestro/Maestro.Web/.config/settings.json b/src/Maestro/Maestro.Web/.config/settings.json index d2caf9d319..d08a81e560 100644 --- a/src/Maestro/Maestro.Web/.config/settings.json +++ b/src/Maestro/Maestro.Web/.config/settings.json @@ -18,5 +18,25 @@ "SignedOutCallbackPath": "/signout-callback-oidc" }, "GitDownloadLocation": "https://netcorenativeassets.blob.core.windows.net/resource-packages/external/windows/git/Git-2.32.0-64-bit.zip", - "EnableAutoBuildPromotion": "[config(FeatureManagement:AutoBuildPromotion)]" + "EnableAutoBuildPromotion": "[config(FeatureManagement:AutoBuildPromotion)]", + "DependencyFlowSLAs": { + "Repositories": { + "dotnet/arcade": { + "WarningUnconsumedBuildAge": 11, + "FailUnconsumedBuildAge": 14 + }, + "dotnet/source-build-externals": { + "WarningUnconsumedBuildAge": 11, + "FailUnconsumedBuildAge": 14 + }, + "dotnet/roslyn": { + "WarningUnconsumedBuildAge": 11, + "FailUnconsumedBuildAge": 14 + }, + "dotnet/extensions": { + "WarningUnconsumedBuildAge": 11, + "FailUnconsumedBuildAge": 14 + } + } + } } diff --git a/src/Maestro/Maestro.Web/Pages/DependencyFlow/GitHubInfo.cs b/src/Maestro/Maestro.Web/Pages/DependencyFlow/GitHubInfo.cs new file mode 100644 index 0000000000..f33c9af932 --- /dev/null +++ b/src/Maestro/Maestro.Web/Pages/DependencyFlow/GitHubInfo.cs @@ -0,0 +1,6 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Maestro.Web.Pages.DependencyFlow; + +public record GitHubInfo(string Owner, string Repo); diff --git a/src/Maestro/Maestro.Web/Pages/DependencyFlow/Incoming.cshtml b/src/Maestro/Maestro.Web/Pages/DependencyFlow/Incoming.cshtml new file mode 100644 index 0000000000..834d31c431 --- /dev/null +++ b/src/Maestro/Maestro.Web/Pages/DependencyFlow/Incoming.cshtml @@ -0,0 +1,119 @@ +@page "/DependencyFlow/incoming/{channelId}/{owner}/{repo}" +@using Maestro.Web.Pages.DependencyFlow +@model IncomingModel + +@{ + ViewBag.Title = "DependencyFlow"; +} + +@section Head { + +} + +For channel '@Model.ChannelName' based on @Model.GetGitHubInfo(Model.Build)?.Repo/@Model.Build?.GitHubBranch@@@Model.Build?.Commit.Substring(0, 6) build @Model.Build?.AzureDevOpsBuildNumber produced @Model.GetDateProduced(Model.Build) + +
+ Oldest unconsumed - build: @(incoming.OldestPublishedButUnconsumedBuild == null ? "none" : incoming.OldestPublishedButUnconsumedBuild.DateProduced.Humanize()) / commit: @(incoming.CommitAge == null ? "(unknown)" : incoming.CommitAge.Humanize()) +
+