Skip to content

Commit e68a6ea

Browse files
added support for workflow call in github actions (#823)
1 parent b93b037 commit e68a6ea

File tree

5 files changed

+33
-13
lines changed

5 files changed

+33
-13
lines changed

.build/Build.CI.cs

+6-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
GitHubActionsImage.WindowsLatest,
1212
GitHubActionsImage.UbuntuLatest,
1313
AutoGenerate = false,
14-
On = new[] { GitHubActionsTrigger.Push },
14+
On = new[] { RocketSurgeonGitHubActionsTrigger.Push },
1515
OnPushTags = new[] { "v*" },
1616
OnPushBranches = new[] { "master", "main", "next" },
1717
OnPullRequestBranches = new[] { "master", "main", "next" },
@@ -23,7 +23,11 @@
2323
GitHubActionsImage.WindowsLatest,
2424
GitHubActionsImage.UbuntuLatest,
2525
AutoGenerate = false,
26-
On = new[] { GitHubActionsTrigger.WorkflowDispatch },
26+
On = new[]
27+
{
28+
RocketSurgeonGitHubActionsTrigger.WorkflowCall,
29+
RocketSurgeonGitHubActionsTrigger.WorkflowDispatch
30+
},
2731
OnPushTags = new[] { "v*" },
2832
OnPushBranches = new[] { "master", "main", "next" },
2933
OnPullRequestBranches = new[] { "master", "main", "next" },

.github/workflows/ci.yml

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ name: ci
1818

1919
on:
2020
workflow_dispatch:
21+
workflow_call:
2122
push:
2223
branches:
2324
- 'master'

src/Nuke/GithubActions/GitHubActionsStepsAttribute.cs

+13-5
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ protected GithubActionsStepsAttributeBase(string name)
4242
/// <summary>
4343
/// The triggers
4444
/// </summary>
45-
public GitHubActionsTrigger[] On { get; set; } = Array.Empty<GitHubActionsTrigger>();
45+
public RocketSurgeonGitHubActionsTrigger[] On { get; set; } = Array.Empty<RocketSurgeonGitHubActionsTrigger>();
4646

4747
/// <summary>
4848
/// The branches to run for push
@@ -176,11 +176,19 @@ public override CustomFileWriter CreateWriter(StreamWriter streamWriter)
176176
/// <returns></returns>
177177
protected virtual IEnumerable<GitHubActionsDetailedTrigger> GetTriggers()
178178
{
179-
if (On.Any(z => z == GitHubActionsTrigger.WorkflowDispatch))
179+
if (On.Any(z => z == RocketSurgeonGitHubActionsTrigger.WorkflowDispatch))
180180
{
181181
yield return new RocketSurgeonGitHubActionsVcsTrigger
182182
{
183-
Kind = GitHubActionsTrigger.WorkflowDispatch
183+
Kind = RocketSurgeonGitHubActionsTrigger.WorkflowDispatch
184+
};
185+
}
186+
187+
if (On.Any(z => z == RocketSurgeonGitHubActionsTrigger.WorkflowCall))
188+
{
189+
yield return new RocketSurgeonGitHubActionsVcsTrigger
190+
{
191+
Kind = RocketSurgeonGitHubActionsTrigger.WorkflowCall
184192
};
185193
}
186194

@@ -191,7 +199,7 @@ protected virtual IEnumerable<GitHubActionsDetailedTrigger> GetTriggers()
191199
{
192200
yield return new RocketSurgeonGitHubActionsVcsTrigger
193201
{
194-
Kind = GitHubActionsTrigger.Push,
202+
Kind = RocketSurgeonGitHubActionsTrigger.Push,
195203
Branches = OnPushBranches,
196204
Tags = OnPushTags,
197205
IncludePaths = OnPushIncludePaths,
@@ -206,7 +214,7 @@ protected virtual IEnumerable<GitHubActionsDetailedTrigger> GetTriggers()
206214
{
207215
yield return new RocketSurgeonGitHubActionsVcsTrigger
208216
{
209-
Kind = GitHubActionsTrigger.PullRequest,
217+
Kind = RocketSurgeonGitHubActionsTrigger.PullRequest,
210218
Branches = OnPullRequestBranches,
211219
Tags = OnPullRequestTags,
212220
IncludePaths = OnPullRequestIncludePaths,

src/Nuke/GithubActions/RocketSurgeonGitHubActionsConfiguration.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using Nuke.Common.CI;
2-
using Nuke.Common.CI.GitHubActions;
32
using Nuke.Common.CI.GitHubActions.Configuration;
43
using Nuke.Common.Tooling;
54

@@ -22,7 +21,7 @@ public class RocketSurgeonGitHubActionsConfiguration : ConfigurationEntity
2221
/// <summary>
2322
/// The short triggers
2423
/// </summary>
25-
public List<GitHubActionsTrigger> ShortTriggers { get; set; } = new();
24+
public List<RocketSurgeonGitHubActionsTrigger> ShortTriggers { get; set; } = new();
2625

2726
/// <summary>
2827
/// The detailed triggers

src/Nuke/GithubActions/RocketSurgeonGitHubActionsVcsTrigger.cs

+12-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
1-
using Nuke.Common.CI.GitHubActions;
2-
using Nuke.Common.CI.GitHubActions.Configuration;
1+
using Nuke.Common.CI.GitHubActions.Configuration;
32
using Nuke.Common.Tooling;
43
using Nuke.Common.Utilities.Collections;
54

65
#pragma warning disable CA1819
76
namespace Rocket.Surgery.Nuke.GithubActions;
87

8+
[PublicAPI]
9+
public enum RocketSurgeonGitHubActionsTrigger
10+
{
11+
[EnumValue("push")] Push,
12+
[EnumValue("pull_request")] PullRequest,
13+
[EnumValue("workflow_dispatch")] WorkflowDispatch,
14+
[EnumValue("workflow_call")] WorkflowCall
15+
}
16+
917
/// <summary>
1018
/// A detailed trigger for version control
1119
/// </summary>
@@ -14,7 +22,7 @@ public class RocketSurgeonGitHubActionsVcsTrigger : GitHubActionsDetailedTrigger
1422
/// <summary>
1523
/// The kind of the trigger
1624
/// </summary>
17-
public GitHubActionsTrigger Kind { get; set; }
25+
public RocketSurgeonGitHubActionsTrigger Kind { get; set; }
1826

1927
/// <summary>
2028
/// The branches
@@ -41,7 +49,7 @@ public override void Write(CustomFileWriter writer)
4149
{
4250
writer.WriteLine(Kind.GetValue() + ":");
4351

44-
if (Kind == GitHubActionsTrigger.WorkflowDispatch) return;
52+
if (Kind is RocketSurgeonGitHubActionsTrigger.WorkflowDispatch or RocketSurgeonGitHubActionsTrigger.WorkflowCall) return;
4553
using (writer.Indent())
4654
{
4755
if (Branches.Length > 0)

0 commit comments

Comments
 (0)