Jenkins: What is a good way to store a variable between two job runs?

前端 未结 3 2180
一个人的身影
一个人的身影 2021-02-20 09:16

I have a time-triggered job which needs to retrieve certain values stored in a previous run of this job.

Is there a way to store values between job runs in the Jenkins e

3条回答
  •  梦毁少年i
    2021-02-20 09:56

    If you are using Pipelines and you're variable is of a simple type, you can use a parameter to store it between runs of the same job.

    Using the properties step, you can configure parameters and their default values from within the pipeline. Once configured you can read them at the start of each run and save them (as default value) at the end. In the declarative pipeline it could look something like this:

    pipeline {
      agent none
      options {
        skipDefaultCheckout true
      }
      stages {
        stage('Read Variable'){
          steps {
            script {
              try {
                variable = params.YOUR_VARIABLE
              }
              catch (Exception e) {
                echo("Could not read variable from parameters, assuming this is the first run of the pipeline. Exception: ${e}")
                variable = ""
              }
            }
          }
    
        }
        stage('Save Variable for next run'){
          steps {
            script {
              properties([
                parameters([
                  string(defaultValue: "${variable}", description: 'Variable description', name: 'YOUR_VARIABLE', trim: true)
                ])
              ])
            }
          }
        }
      }
    

提交回复
热议问题