1

I have the below code in the jenkisn pipeline:

   stage ("amd_distribution_input_transformation"){
        steps{
            script{
                    amd_distribution_input_transformation url: params.DOMAIN_DESCRIPTOR_URL, secret: params.CERDENITAL_ID
                }
            }
        }

groovy code:

def call(Map parameters)
{
    def CREDENITAL_ID = parameters.secret
    def DOMAIN_DESCRIPTOR_URL = parameters.url
    sh '''
        python amd_distribution_input_transformation.py
      '''
    }             
}

in the amd_distribution_input_transformation.py some code is running, and at the end, it returns JSON object named 'artifacts_list'

my question is, how can I access this object in my next stage in the pipeline:

stage ("create bundle"){
            steps{
                script{
                    amd_distribution_create_bundle credential_id: artifacts_list
                    }
                }
            }

1 Answer 1

1

You can send the output of your python script to stdout and capture it in a environment variable and that variable can be passed to other stages in the pipeline. Also, the environment variables can be used inside the scripts.

You can do something like this:

def call(Map parameters)
{
    def CREDENITAL_ID = parameters.secret
    def DOMAIN_DESCRIPTOR_URL = parameters.url
    env.artifacts = sh(script: "python amd_distribution_input_transformation.py", returnStdout: true )

    }             
}

Here, the output of the script amd_distribution_input_transformation.py will be stored in the variable artifacts and will be available further.

3
  • how can I use/access env.artifacts in the pipeline?
    – arielma
    Commented Nov 18, 2019 at 20:51
  • artifacts is just a variable. Say the python script has returned you a string separated with commas, you can put it in pipeline stage as amd_distribution_create_bundle credential_id: artifacts.split() to pass a list to your script.
    – Samit
    Commented Nov 18, 2019 at 21:44
  • Tnx, I will try and update. BTW, is there a second option, to save the python output to Linux file and then define pipeline variable which gets its value?
    – arielma
    Commented Nov 19, 2019 at 22:35

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.