复制詹金斯管道项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复制詹金斯管道项目相关的知识,希望对你有一定的参考价值。

我正在寻找一种在Jenkins中创建管道项目副本的方法。如果我选择一个普通项目,我会在侧栏中看到一个“复制项目”选项,但管道项目中没有。是否可以复制管道?

答案

我不知道在UI中这样做的方法,我使用Jenkins CLI来做到这一点。我为命令行写了一个包装器,如下所示:

#!/bin/sh
#file: jenkins_cli.sh
cd $1
if [ -z ${JENKINS_CREDENTIALS+x} -o -z ${JENKINS_SERVER+x} ]
  then
    JENKINS_SERVER=$(<jenkins_url.txt)
    JENKINS_CREDENTIALS=$(<credentials_api.txt)
fi
java -jar jenkins-cli.jar -s $JENKINS_SERVER -auth $JENKINS_CREDENTIALS ${@:2} | dos2unix

因为我有每个詹金斯大师的子文件夹,我有这些子文件夹包含jenkins_url.txtcredentials_api.txt。然后我调用这样的命令:./jenkins_cli <jenkinsxyz> help

为了保存一个Jenkins Master的工作,我创建了这个脚本:

#!/bin/sh
# save all job configurations locally
#
# parameters:
#   directory with credentials_api.txt, jenkins_url.txt and jenkins-cli.jar of 
#   the jenkins server that will be backuped
cd $1
CLI="./../jenkins_cli.sh"

echo "create backup folder.."
mkdir -p backup

echo "save job list.."
. $CLI . list-jobs | unix2dos.exe > jobs.txt

echo "save job configuration.."
LOOPS=$(wc -l < jobs.txt)
for l in $(seq $LOOPS); do
    JOBNAME=$(tail -n+$l jobs.txt | head -n1)
    . $CLI . get-job "$JOBNAME" > ./backup/$JOBNAME.xml
    echo "saved job nr. $l: $JOBNAME"
done

不是最好的,但它的工作原理:)我正在使用Git for Windows,这就是为什么我要把所有东西都连接到unix2dos。

以上是关于复制詹金斯管道项目的主要内容,如果未能解决你的问题,请参考以下文章

将文件复制到管道詹金斯中的远程窗口服务器

詹金斯从工件加载文件时出错

如何在詹金斯中获取管道作业的 URL

如何从詹金斯管道中选择声纳质量门?

具有动态参数的詹金斯管道

詹金斯管道的 GIT 交叉签出和依赖项检查