Ich habe mehrere Projekte, die eine Jenkinsfile verwenden, die praktisch identisch ist. Der einzige Unterschied ist das git-Projekt, das es auschecken muss. Dies zwingt mich ein Jenkinsfile pro Projekt zu haben, obwohl sie die gleiche teilen konnten:Wie man eine Jenkins 2 Pipeline so konfiguriert, dass Jenkinsfile eine vordefinierte Variable verwendet
node{
def mvnHome = tool 'M3'
def artifactId
def pomVersion
stage('Commit Stage'){
echo 'Downloading from Git...'
git branch: 'develop', credentialsId: 'xxx', url: 'https://bitbucket.org/xxx/yyy.git'
echo 'Building project and generating Docker image...'
sh "${mvnHome}/bin/mvn clean install docker:build -DskipTests"
...
Gibt es eine Möglichkeit, die git Position als Variable bei der Schaffung von Arbeitsplätzen vorkonfigurieren, so kann ich die gleiche Jenkinsfile wiederverwenden?
...
stage('Commit Stage'){
echo 'Downloading from Git...'
git branch: 'develop', credentialsId: 'xxx', url: env.GIT_REPO_LOCATION
...
Ich weiß, dass ich es auf diese Art und Weise einstellen:
Dieses Projekt ist parametriert -> String Parameter -> GIT_REPO_LOCATION, default = http://xxxx, und greifen Sie mit env.GIT_REPO_LOCATION.
Der Nachteil ist, dass der Benutzer aufgefordert wird, den Build mit dem Standardwert zu starten oder zu ändern. Ich würde brauchen, dass es für den Benutzer transparent ist. Gibt es einen Weg, es zu tun?
Danke für den Vorschlag, ich werde es in den nächsten Tagen versuchen und mit ein paar Rückmeldungen kommen. – codependent
Erwägen Sie die Verwendung von Multi-Branch-Pipeline. Dann zeigt Jenkins für jeden Zweig einen separaten Unterjob an. Es ist eine schönere Visualisierung und Sie können für jeden Zweig manuell bauen. – herm