有可能在两个不同的詹金斯之间交换工作吗?我正在寻找一种输出/输入工作的方法。
当前回答
作业导入插件是这里从另一个Jenkins实例导入作业的简单方法。只需要提供源Jenkins实例的URL。Remote Jenkins URL可以接受以下任何类型的URL:
http://$JENKINS -获取远程实例上的所有作业 http://$JENKINS/job/$JOBNAME -找一份工作 http://$JENKINS/view/$VIEWNAME -获取特定视图中的所有作业
其他回答
这并不适用于现有的工作,但是有Jenkins工作生成器。
这允许我们将作业定义保存在yaml文件和git repo中,这是非常可移植的。
在web浏览器中访问:
http://[jenkinshost]/job/[jobname]/config.xml
只需将文件保存到磁盘即可。
有一个叫Job Import plugin的插件可能就是你要找的。我用过。它确实存在从不允许匿名访问的服务器导入项目的问题。
完整性: 如果您有命令行访问这两个任务,您可以执行Khez已经提到的移动、复制和重命名Jenkins作业的过程。
Jenkins有一个相当不错的wiki,尽管对于CI软件新手来说很难阅读……
它们为在服务器之间移动作业提供了一种简单的解决方案
诀窍可能是需要从Jenkins Configuration Page重新加载配置。
更新2020.03.10
詹金科学的格局已经改变了很多…我已经使用工作DSL有一段时间了。 我们有一个SEED Job,它生成其余的Job。
这有助于我们在需要的时候为Jenkins服务器重新创建或移动:) 您还可以为这些文件设置版本,以获得更好的可维护性!
Jenkins将作业导出到一个目录
#! /bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
declare -i j=0
for i in $(java -jar jenkins-cli.jar -s http://server:8080/jenkins list-jobs --username **** --password ***);
do
let "j++";
echo $j;
if [ $j -gt 283 ] // If you have more jobs do it in chunks as it will terminate in the middle of the process. So Resume your job from where it ends.
then
java -jar jenkins-cli.jar -s http://lxvbmcbma:8080/jenkins get-job --username **** --password **** ${i} > ${i}.xml;
echo "done";
fi
done
进口工作
for f in *.xml;
do
echo "Processing ${f%.*} file.."; //truncate the .xml extention and load the xml file for job creation
java -jar jenkins-cli.jar -s http://server:8080/jenkins create-job ${f%.*} < $f
done