我已经在我的构建管道中使用Jenkins API来完成某些任务。现在,有一项任务我希望为每个构建保留一些简单的动态数据,例如“50.24”。然后能够在不同的作业中检索此数据。
更具体地说,我正在寻找这些方面的东西
POST到http://localhost:8080/job/myjob/ / api / json / store { “代码覆盖”: “50.24”}
然后在另一份工作中
GET http://localhost:8080/job/myjob/ / API / JSON?代码覆盖
一个想法是archiveArtifacts
并将其保存到文件中,然后使用API /文件将其读回。但我想知道是否有插件或一种简单的方法来为这份工作写一些数据。
答案 0 :(得分:0)
参数化构建是最简单的方法: https://wiki.jenkins.io/display/JENKINS/Parameterized+Build
网址如下:
http://server/job/myjob/buildWithParameters?PARAMETER=Value
如果您需要共享复杂数据,可以在工作区中保存一些文件并从另一个版本中使用它(发送绝对路径)。
我会去使用环境var,在你的流程中更新:
Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
environment {
DISABLE_AUTH = 'true'
DB_ENGINE = 'sqlite'
}
stages {
stage('Build') {
steps {
sh 'printenv'
}
}
}
}
那里的所有细节: https://jenkins.io/doc/pipeline/tour/environment/
你有两个案例,如果你的构建是在同一个工作区内。 在同一个工作区中,将数据写入文本文件中是完全没问题的,以后可以通过其他作业重新使用。 如果您的用例是从日志中提取测试结果,并在以后重新使用它,那么archiveArtifacts插件很方便。否则你将不得不自己编写这个过程。
如果您的第二份工作是使用其他工作区,则需要提供子工作的绝对路径。为了复制和处理它。