1

I want to use a python script as input to create stages in jenkins pipeline

test.py

{'job-name': 'Test1', 'action': 'a', 'targetname': 'x'}
{'job-name': 'Test2', 'action': 'b', 'targetname': 'y'} 
{'job-name': 'Test3', 'action': 'c', 'targetname': 'z'}

The output of the above python script is a dictionary.

How to run this python script in Jenkins pipeline in a stage and how to store the output and use the output to define further stages

Example:

stage(Test1) {

}
stage(Test2) {

}
stage(Test3) {

}

Extract only 'value' of a particular 'key' from the output of python script to define stages in Jenkins pipeline.

How to execute it in Jenkins groovy as declarative pipeline ?

1
  • Did you solve your requirement?
    – JRichardsz
    Commented May 28, 2022 at 17:12

1 Answer 1

1

This was already asked and answered over on StackOverflow.

TL;DR: you must use Scripted Pipeline; Declarative does not support dynamic stages. Here is a copy-paste of the top answer:

Use the scripted syntax that allows more flexibility than the declarative syntax, even though the declarative is more documented and recommended.

For example stages can be created in a loop:

def tests = params.Tests.split(',')
for (int i = 0; i < tests.length; i++) {
    stage("Test ${tests[i]}") {
        sh '....'
    }
}
2
  • is this file complete or would you need to wrap this in a stages block? Commented Oct 27, 2022 at 20:23
  • It would need to be wrapped in a script { } block.
    – jayhendren
    Commented Oct 28, 2022 at 16:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.