有没有办法通过命令行更改Jenkins环境变量的值?

41ik7eoe  于 2023-03-17  发布在  Jenkins
关注(0)|答案(1)|浏览(238)

我有一个shell脚本,其中包含一个版本号,该版本号会根据我执行的更新而不断更改。我需要将此版本号存储到Jenkins env变量中,以便我所有的Jenkins文件都可以访问此最新版本号。我该如何做到这一点?据我所知,在Jenkins中设置env变量只能通过UI或管道完成。没有其他方法可以做到这一点吗?

zrfyljdw

zrfyljdw1#

关键是通过shell脚本将版本号写入文件,然后从文件中读取并赋值给Jenkins env。
如果您希望版本号可用于其他管道,则需要确保其他管道与当前管道运行在相同的Jenkins代理上,其次将版本号写入文件到管道不会清理的文件夹中,这两个要求都不容易满足。
以下方法仅启用当前管道中可用的版本号。

pipeline {
  
  stages {
    stage('Init') {
      steps {
        sh '''
          put your shell script here and output 
          the vesion number to a file, like version.txt
        '''
        script {
          env.VERSION_NUMBER = sh('cat <path to>/version.txt', returnStdout: true).trim()
        }
      }
    }

    stage('A') {
      steps {
        echo env.VERSION_NUMBER
      }
    }
  }
}

相关问题