Re-use agent in parallel stages of declarative pipeline
I'm using Declarative Pipelines 1.3.2 plugin and I want to use the same agent (as in only specifying the agent
directive once) in multiple parallel stages:
stage('Parallel Deployment')
{
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
parallel
{
stage('A') { steps { ... } }
stage('B') { steps { ... } }
}
}
However, Jenkins complains:
"agent" is not allowed in stage "Parallel Deployment" as it contains parallel stages
A solution is to duplicate the agent
directive for each parallel stage, but this is tedious and leads to lot of duplicated code with many parallel stages:
stage('Parallel Deployment')
{
parallel
{
stage('A') {
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
steps { ... }
}
stage('B') {
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
steps { ... }
}
}
}
Is there a more idiomatic solution, or is duplicating agent
directive necessary for each of the parallel stages?
jenkins jenkins-plugins jenkins-pipeline
add a comment |
I'm using Declarative Pipelines 1.3.2 plugin and I want to use the same agent (as in only specifying the agent
directive once) in multiple parallel stages:
stage('Parallel Deployment')
{
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
parallel
{
stage('A') { steps { ... } }
stage('B') { steps { ... } }
}
}
However, Jenkins complains:
"agent" is not allowed in stage "Parallel Deployment" as it contains parallel stages
A solution is to duplicate the agent
directive for each parallel stage, but this is tedious and leads to lot of duplicated code with many parallel stages:
stage('Parallel Deployment')
{
parallel
{
stage('A') {
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
steps { ... }
}
stage('B') {
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
steps { ... }
}
}
}
Is there a more idiomatic solution, or is duplicating agent
directive necessary for each of the parallel stages?
jenkins jenkins-plugins jenkins-pipeline
2
Are you not able to declare the agent at Pipeline level so all stages run on the same agent ?
– ben5556
Nov 6 '18 at 3:02
You are totally correct; if this was the answer, I'd accept it now.
– Sean Pianka
Nov 15 '18 at 4:44
Added it as an answer :)
– ben5556
Nov 15 '18 at 5:11
add a comment |
I'm using Declarative Pipelines 1.3.2 plugin and I want to use the same agent (as in only specifying the agent
directive once) in multiple parallel stages:
stage('Parallel Deployment')
{
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
parallel
{
stage('A') { steps { ... } }
stage('B') { steps { ... } }
}
}
However, Jenkins complains:
"agent" is not allowed in stage "Parallel Deployment" as it contains parallel stages
A solution is to duplicate the agent
directive for each parallel stage, but this is tedious and leads to lot of duplicated code with many parallel stages:
stage('Parallel Deployment')
{
parallel
{
stage('A') {
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
steps { ... }
}
stage('B') {
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
steps { ... }
}
}
}
Is there a more idiomatic solution, or is duplicating agent
directive necessary for each of the parallel stages?
jenkins jenkins-plugins jenkins-pipeline
I'm using Declarative Pipelines 1.3.2 plugin and I want to use the same agent (as in only specifying the agent
directive once) in multiple parallel stages:
stage('Parallel Deployment')
{
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
parallel
{
stage('A') { steps { ... } }
stage('B') { steps { ... } }
}
}
However, Jenkins complains:
"agent" is not allowed in stage "Parallel Deployment" as it contains parallel stages
A solution is to duplicate the agent
directive for each parallel stage, but this is tedious and leads to lot of duplicated code with many parallel stages:
stage('Parallel Deployment')
{
parallel
{
stage('A') {
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
steps { ... }
}
stage('B') {
agent { dockerfile { label 'docker'; filename 'Dockerfile'; } }
steps { ... }
}
}
}
Is there a more idiomatic solution, or is duplicating agent
directive necessary for each of the parallel stages?
jenkins jenkins-plugins jenkins-pipeline
jenkins jenkins-plugins jenkins-pipeline
asked Nov 6 '18 at 1:18
Sean PiankaSean Pianka
88211126
88211126
2
Are you not able to declare the agent at Pipeline level so all stages run on the same agent ?
– ben5556
Nov 6 '18 at 3:02
You are totally correct; if this was the answer, I'd accept it now.
– Sean Pianka
Nov 15 '18 at 4:44
Added it as an answer :)
– ben5556
Nov 15 '18 at 5:11
add a comment |
2
Are you not able to declare the agent at Pipeline level so all stages run on the same agent ?
– ben5556
Nov 6 '18 at 3:02
You are totally correct; if this was the answer, I'd accept it now.
– Sean Pianka
Nov 15 '18 at 4:44
Added it as an answer :)
– ben5556
Nov 15 '18 at 5:11
2
2
Are you not able to declare the agent at Pipeline level so all stages run on the same agent ?
– ben5556
Nov 6 '18 at 3:02
Are you not able to declare the agent at Pipeline level so all stages run on the same agent ?
– ben5556
Nov 6 '18 at 3:02
You are totally correct; if this was the answer, I'd accept it now.
– Sean Pianka
Nov 15 '18 at 4:44
You are totally correct; if this was the answer, I'd accept it now.
– Sean Pianka
Nov 15 '18 at 4:44
Added it as an answer :)
– ben5556
Nov 15 '18 at 5:11
Added it as an answer :)
– ben5556
Nov 15 '18 at 5:11
add a comment |
1 Answer
1
active
oldest
votes
Declare the agent at Pipeline level so all stages run on the same agent.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53164528%2fre-use-agent-in-parallel-stages-of-declarative-pipeline%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Declare the agent at Pipeline level so all stages run on the same agent.
add a comment |
Declare the agent at Pipeline level so all stages run on the same agent.
add a comment |
Declare the agent at Pipeline level so all stages run on the same agent.
Declare the agent at Pipeline level so all stages run on the same agent.
answered Nov 15 '18 at 5:11
ben5556ben5556
1,9622310
1,9622310
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53164528%2fre-use-agent-in-parallel-stages-of-declarative-pipeline%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
Are you not able to declare the agent at Pipeline level so all stages run on the same agent ?
– ben5556
Nov 6 '18 at 3:02
You are totally correct; if this was the answer, I'd accept it now.
– Sean Pianka
Nov 15 '18 at 4:44
Added it as an answer :)
– ben5556
Nov 15 '18 at 5:11