Skip to content

Commit 2b24568

Browse files
committed
(build) split publish job in parallel retry-able jobs
1 parent cefb93b commit 2b24568

File tree

5 files changed

+36
-10
lines changed

5 files changed

+36
-10
lines changed

azure-pipelines.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,22 @@ stages:
7171
- job: Publish
7272
pool:
7373
vmImage: windows-latest
74+
strategy:
75+
matrix:
76+
CI:
77+
TASK_NAME: 'CI'
78+
NuGet:
79+
TASK_NAME: 'NuGet'
80+
Chocolatey:
81+
TASK_NAME: 'Chocolatey'
82+
Gem:
83+
TASK_NAME: 'Gem'
84+
Documentation:
85+
TASK_NAME: 'Documentation'
7486
steps:
7587
- template: build/stages/publish.yml
88+
parameters:
89+
taskName: $(TASK_NAME)
7690

7791
- stage: Release
7892
dependsOn:

build.cake

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,10 +142,19 @@ Task("Test")
142142

143143
Task("Publish-CI")
144144
.IsDependentOn("Publish-AppVeyor")
145-
.IsDependentOn("Publish-AzurePipeline")
146-
.Finally(() =>
147-
{
148-
});
145+
.IsDependentOn("Publish-AzurePipeline");
146+
147+
Task("Publish-Gem")
148+
.IsDependentOn("Publish-Gem-Internal");
149+
150+
Task("Publish-NuGet")
151+
.IsDependentOn("Publish-NuGet-Internal");
152+
153+
Task("Publish-Chocolatey")
154+
.IsDependentOn("Publish-Chocolatey-Internal");
155+
156+
Task("Publish-Documentation")
157+
.IsDependentOn("Publish-Documentation-Internal");
149158

150159
Task("Publish")
151160
.IsDependentOn("Publish-CI")

build/publish.cake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ Task("Publish-AzurePipeline")
8181
publishingError = true;
8282
});
8383

84-
Task("Publish-Gem")
84+
Task("Publish-Gem-Internal")
8585
.WithCriteria<BuildParameters>((context, parameters) => parameters.EnabledPublishGem, "Publish-Gem was disabled.")
8686
.WithCriteria<BuildParameters>((context, parameters) => parameters.IsRunningOnWindows, "Publish-Gem works only on Windows agents.")
8787
.WithCriteria<BuildParameters>((context, parameters) => parameters.IsRunningOnAzurePipeline, "Publish-Gem works only on AzurePipeline.")
@@ -109,7 +109,7 @@ Task("Publish-Gem")
109109
publishingError = true;
110110
});
111111

112-
Task("Publish-NuGet")
112+
Task("Publish-NuGet-Internal")
113113
.WithCriteria<BuildParameters>((context, parameters) => parameters.EnabledPublishNuget, "Publish-NuGet was disabled.")
114114
.WithCriteria<BuildParameters>((context, parameters) => parameters.IsRunningOnWindows, "Publish-NuGet works only on Windows agents.")
115115
.WithCriteria<BuildParameters>((context, parameters) => parameters.IsRunningOnAzurePipeline, "Publish-NuGet works only on AzurePipeline.")
@@ -147,7 +147,7 @@ Task("Publish-NuGet")
147147
publishingError = true;
148148
});
149149

150-
Task("Publish-Chocolatey")
150+
Task("Publish-Chocolatey-Internal")
151151
.WithCriteria<BuildParameters>((context, parameters) => parameters.EnabledPublishChocolatey, "Publish-Chocolatey was disabled.")
152152
.WithCriteria<BuildParameters>((context, parameters) => parameters.IsRunningOnWindows, "Publish-Chocolatey works only on Windows agents.")
153153
.WithCriteria<BuildParameters>((context, parameters) => parameters.IsRunningOnAzurePipeline, "Publish-Chocolatey works only on AzurePipeline.")

build/stages/publish.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
parameters:
2+
taskName: ''
3+
14
steps:
25
- template: common-steps.yml
36
- task: UseRubyVersion@0
@@ -12,7 +15,7 @@ steps:
1215
source: current
1316
path: $(Build.SourcesDirectory)
1417
artifact: storage
15-
- script: dotnet cake build.cake --bootstrap && dotnet cake build.cake --target=Publish
18+
- script: dotnet cake build.cake --bootstrap && dotnet cake build.cake --target=Publish-${{ parameters.taskName }}
1619
displayName: '[Publish]'
1720
env:
1821
GITHUB_TOKEN: $(GITHUB_TOKEN)

build/wyam.cake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ Task("Force-Publish-Documentation")
5252
PublishDocumentation(parameters);
5353
});
5454

55-
Task("Publish-Documentation")
55+
Task("Publish-Documentation-Internal")
5656
.IsDependentOn("Clean-Documentation")
5757
.WithCriteria(() => DirectoryExists(MakeAbsolute(Directory("docs"))), "Wyam documentation directory is missing")
5858
.WithCriteria<BuildParameters>((context, parameters) => parameters.IsRunningOnWindows, "Publish-Documentation is ran only on Windows agents.")
5959
.WithCriteria<BuildParameters>((context, parameters) => parameters.IsRunningOnAzurePipeline, "Publish-Documentation is ran only on AzurePipeline.")
60-
.WithCriteria<BuildParameters>((context, parameters) => !parameters.IsPullRequest, "Publish-Documentation works only for non-PR commits.")
60+
.WithCriteria<BuildParameters>((context, parameters) => parameters.IsStableRelease() || parameters.IsPreRelease(), "Publish-Documentation works only for non-PR commits.")
6161
.Does<BuildParameters>((parameters) =>
6262
{
6363
// Check to see if any documentation has changed

0 commit comments

Comments
 (0)