2017-12-18 51 views
1

Ich bin auf der Suche nach einer Möglichkeit, eine Kopie eines Pipeline-Projekts in Jenkins zu erstellen. Wenn ich ein normales Projekt auswähle, sehe ich eine Option "Projekt kopieren" in der Seitenleiste, aber das ist nicht in Pipeline-Projekten. Ist es überhaupt möglich, Pipelines zu kopieren?Kopieren jenkins pipeline project

+1

Bitte überprüfen Sie https://issues.jenkins-ci.org/plugins/servlet/mobile#issue/JENKINS-32756 – slashpai

+0

Interessant, danke @slashpai. – NeoTheThird

+0

Mögliches Duplikat von [Wie klonen ich einen Job in jenkins?] (Https://stackoverflow.com/questions/23838259/how-do-i-clone-a-job-in-jenkins) – mkobit

Antwort

1

Ich weiß nicht von einer Möglichkeit, das in der UI zu tun, ich verwende die Jenkins CLI, um das zu tun. Ich schrieb einen Wrapper für die Kommandozeile, die wie folgt aussieht:

#!/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 

da ich Unterordner für jeden Jenkins Master Ich habe und diese Unterordner enthalten die jenkins_url.txt und credentials_api.txt. Ich rufe dann Befehle wie folgt auf: ./jenkins_cli <jenkinsxyz> help.

speichern Jobs eines Jenkins Meister, habe ich dieses Skript:

#!/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 

nicht die schönste, aber es funktioniert :) und ich Git für Windows verwende, das ist, warum ich alles unix2dos bin kochend.

+0

Funktioniert, danke. – NeoTheThird

+0

vergessen zu erwähnen: Wenn ich den gespeicherten Job auf einem neuen Master erstellen möchte, rufe ich './jenkins_cli create-job tim