2017-12-18 392 views
1

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

+1

请检查https://issues.jenkins-ci.org/plugins/servlet/mobile#issue/JENKINS-32756 – slashpai

+0

有趣的,谢谢@slashpai。 – NeoTheThird

+0

可能重复的[我如何在jenkins中克隆作业?](https://stackoverflow.com/questions/23838259/how-do-i-clone-a-job-in-jenkins) – mkobit

回答

1

我不知道在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

一个詹金斯大师的挽救工作,我创造了这个脚本:

#!/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的Windows,这就是为什么我在管道一切unix2dos。

+0

作品,谢谢。 – NeoTheThird

+0

忘了提及:如果我想在新主人上创建保存的作业,我只需调用'./jenkins_cli create-job tim