|
19 | 19 | using static Nuke.Common.Tools.Slack.SlackTasks; |
20 | 20 | using Nuke.Common.Tools.Slack; |
21 | 21 | using System.IO; |
| 22 | +using Nuke.Common.Tools.Teams; |
22 | 23 |
|
23 | 24 | [UnsetVisualStudioEnvironmentVariables] |
24 | 25 | class Build : NukeBuild |
@@ -53,8 +54,32 @@ class Build : NukeBuild |
53 | 54 | [KeyVaultSecret("AntlrCalculatorDemo-WebDeployUsername")] string WebDeployUsername; |
54 | 55 | [KeyVaultSecret("AntlrCalculatorDemo-WebDeployPassword")] string WebDeployPassword; |
55 | 56 | [KeyVaultSecret] string GitHubAuthenticationToken; |
| 57 | + [KeyVaultSecret] readonly string DanglCiCdTeamsWebhookUrl; |
56 | 58 | [Parameter] string AppServiceName = "antlr-calculator-demo"; |
57 | 59 |
|
| 60 | + protected override void OnTargetFailed(string target) |
| 61 | + { |
| 62 | + if (IsServerBuild) |
| 63 | + { |
| 64 | + SendTeamsMessage("Build Failed", $"Target {target} failed for Dangl.Calculator, " + |
| 65 | + $"Branch: {GitRepository.Branch}", true); |
| 66 | + } |
| 67 | + } |
| 68 | + |
| 69 | + void SendTeamsMessage(string title, string message, bool isError) |
| 70 | + { |
| 71 | + if (!string.IsNullOrWhiteSpace(DanglCiCdTeamsWebhookUrl)) |
| 72 | + { |
| 73 | + var themeColor = isError ? "f44336" : "00acc1"; |
| 74 | + TeamsTasks |
| 75 | + .SendTeamsMessage(m => m |
| 76 | + .SetTitle(title) |
| 77 | + .SetText(message) |
| 78 | + .SetThemeColor(themeColor), |
| 79 | + DanglCiCdTeamsWebhookUrl); |
| 80 | + } |
| 81 | + } |
| 82 | + |
58 | 83 | Target Clean => _ => _ |
59 | 84 | .Executes(() => |
60 | 85 | { |
@@ -93,6 +118,12 @@ class Build : NukeBuild |
93 | 118 | : "next"; |
94 | 119 |
|
95 | 120 | Npm($"publish --tag={npmTag}", distDirectory); |
| 121 | + |
| 122 | + if (npmTag == "latest") |
| 123 | + { |
| 124 | + SendTeamsMessage("New Release", $"New release available for antlr-calculator: {GitVersion.NuGetVersion}", false); |
| 125 | + } |
| 126 | + |
96 | 127 | }); |
97 | 128 |
|
98 | 129 | Target DeployDemo => _ => _ |
|
0 commit comments