Ich versuche, Jenkins-Datei für alle unsere Builds in Jenkins zu verwenden, und ich habe folgendes Problem. Wir haben im Grunde drei Arten von Builds:Jenkinsfile und verschiedene Strategien für Niederlassungen
- Pull-Anfrage Baujahr - es nach dem Code-Review zu meistern zusammengeführt werden, und wenn Build arbeitet
- manuelle Pull-Anfrage Baujahr - einen Build, der das gleiche tut wie oben, kann aber vom Benutzer manuell ausgelöst werden (zB im Fall haben wir einig instabilen Test)
- eine anfängliche Pipeline kontinuierlich liefern - dies den Code aufbauen, implementieren die zu Repository installiert Artefakte aus dem Repository auf dem Zielserver und startet Anwendung dort
Wie sollte ich alle obigen Builds in einer einzigen Jenkins-Datei enthalten? Im Moment ist die einzige Idee, die ich habe, ein Riese zu machen, wenn das prüft, welcher Zweig es ist und die Schritte machen wird.
So habe ich zwei Fragen:
1. Ist der geeignete Weg, um es in Jenkinsfile zu tun?
- Wie erhält man den Namen der aktuell ausgeführten Verzweigung in einem Multi-Branch-Jobtyp?
als Referenz, hier ist meine aktuelle Jenkinsfile
:
def servers = ['server1', 'server2']
def version = "1.0.0-${env.BUILD_ID}"
stage 'Build, UT, IT'
node {
checkout scm
env.PATH = "${tool 'Maven'}/bin:${env.PATH}"
withEnv(["PATH+MAVEN=${tool 'Maven'}/bin"]) {
sh "mvn -e org.codehaus.mojo:versions-maven-plugin:2.1:set -DnewVersion=$version -DgenerateBackupPoms=false"
sh 'mvn -e clean deploy'
sh 'mvn -e scm:tag'
}
}
def nodes = [:]
for (int i = 0; i < servers.size(); i++) {
def server = servers.get(i)
nodes["$server"] = {
stage "Deploy to INT ($server)"
node {
sshagent(['SOME-ID']) {
sh """
ssh ${server}.example.com <<END
hostname
/apps/stop.sh
yum -y update-to my-app.noarch
/apps/start.sh
END""".stripIndent()
}
}
}
}
parallel nodes
EDIT: entfernt Beurteilung aufgrund Frage
Mögliche Duplikat [Jenkins Pipeline mehrfach verzweigten: Was die Zweignamen Variable] (http://stackoverflow.com/questions/32789619/jenkins-multibranch-pipeline-what- is-the-branch-name-variable) –