Jenkins Fähigkeiten des gleichen Typs und verschiedener Arten von Jobaufrufen und Parameterübertragung (ausgelöst durch Parameter)

1. Hintergrund

Stellen Sie vor dem Eingeben des Themas zunächst die Abhängigkeiten zwischen Projekten vor . Was ist eine Abhängigkeit? Beispielsweise muss das Projekt Test1 erstellt werden, nachdem die Test2-Komponente des Projekts abgeschlossen wurde. Dies ist die Abhängigkeit. In der Benutzeroberfläche von Jenkins ist dies die Option für den roten Bereich in Abbildung 1.

Fügen Sie hier eine Bildbeschreibung ein

Umweltvorbereitung

  1. ein Computer
  2. Jenkins-Umgebung (online verfügbar, kann nach Belieben gefunden werden)

2. Gegenseitige Anrufe zwischen Jobs des gleichen Typs

Gegenseitiger Aufruf und Parameterübertragung zwischen Projektjob

Wenn Sie lokale Jenkins verwenden, installieren Sie bitte das Parametrisierte Trigger-Plugin

Um diesen Prozess nachzuahmen, habe ich Test1 und Test2 erstellt. Der Build-Inhalt in jedem Projekt besteht aus Windows-Batch-Commonds. Sie können die Befehle nach Belieben eingeben.

1. Die relevante Konfiguration von Test1 ist wie folgt

Das erste, was wir wissen müssen, ist, dass wir weitergeben wollenPaketnamenDieser Parameter
(1) setzt diesen Parameter zuerst in Test1. Fügen Sie hier eine Bildbeschreibung ein
(2) Wählen Sie Trigger parametrized Build für andere Projekte

Zu erstellende Projekte Wählen Sie das Projekt aus, das Sie auslösen möchten. Hier schreiben wirTest2. Trigger, wenn Build nach Bedarf ausgewählt ist.

Sie können die Parameter, die Sie übergeben möchten, in den vordefinierten Parametern definieren, die wie folgt geschrieben sind, oder Sie können die Umgebungsvariablen des aktuellen Jobs an ein anderes Projekt übergeben. Fügen Sie hier eine Bildbeschreibung ein
Also ist Test1 gesetzt

2. Die relevante Konfiguration von Test2 ist wie folgt

Wählen Sie für die Konfiguration in Test2 den parametrisierten Erstellungsprozess aus. Der Parametername sollte mit dem gerade geschriebenen
übereinstimmen ! [Fügen Sie hier die Bildbeschreibung ein] Stellen Sie sicher
Fügen Sie hier eine Bildbeschreibung ein
, dass die Parameter in Windows Batch Commonds 3 korrekt übergeben werden. Schauen wir uns abschließend die Konsolenausgabe der beiden Jobs an. DieFügen Sie hier eine Bildbeschreibung ein
erste ist die Konsolenausgabe von Test1. Sie können sehen, dass Test 2 aufgerufen wird

Dann schauen wir uns die Konsolenausgabe von Test2 an und
Fügen Sie hier eine Bildbeschreibung ein
sehen, dass der von uns übergebene Parameter packageName, ausgelöst durch Nummer 4 von Test1, ebenfalls übergeben wurde.

Gegenseitiger Aufruf und Parameterübertragung zwischen Pipeline-Jobs

Lassen Sie uns vorstellen, wie zwei JOBs im Pipeline-Code verbunden werden. Wir wissen, dass wir im freien Jobeinstellungs-Header in Jenkins der grafischen Oberfläche die Ausführung von Job B nach Ausführung von Job A auslösen können. Wie realisiert die Pipeline diesen Prozess?

Umweltvorbereitung

Derzeit heißt mein JobA ProjectA-Pipeline-Demo und JobB heißt ProjectA1-Pipeline-Demo

1. Die relevante Konfiguration der ProjectA-Pipeline-Demo lautet wie folgt:
Dies ist ein einfacher Pipeline-Job, den ich lokal geschrieben habe. Mit der Build-Funktion können Parameter zwischen Pipeline-Jobs aufgerufen und übertragen werden.

// An highlighted block
import hudson.model.*;
 
 
pipeline{
    
     
	
	agent any
	stages{
    
    
		stage("Hello Pipeline") {
    
    
			steps {
    
    
			    script {
    
    
					println "Hello Pipeline!"
					println env.JOB_NAME
					println env.BUILD_NUMBER
				}
			}
		}
		
		stage("Init paramters in json") {
    
    
			steps {
    
    
			    script {
    
    
					println "read josn input file"
					def packagename = "xxx"
					println packagename
				    callTestingJob(packagename)
				}
			}
		}	
	}
}
def callTestingJob(packagename){
    
    
    println packagename
	build job:"1", propagate: false, wait: true,parameters: [
	     string(name:'packagename', value: packagename)
	                   ]	
}


3. Gegenseitige Anrufe zwischen verschiedenen Arten von Jobs

Pipeline Job ruft Project Job auf und übergibt Parameter

Oben haben wir gelernt, wie Parameter zwischen denselben Typen aufgerufen und übergeben werden. Anschließend werden verschiedene Arten von Jobs in Reihe geschaltet. Hier nennen wir den Pipeline-Job ProjectB-Pipeline-Demo und den Projektjob-Namen 1.

1. Die relevante Konfiguration der ProjectB-Pipeline-Demo ist wie folgt

Dies ist ein einfacher Pipeline-Code, den ich lokal geschrieben habe

// An highlighted block
import hudson.model.*;
 
 
pipeline{
    
     
	
	agent any
	stages{
    
    
		stage("Hello Pipeline") {
    
    
			steps {
    
    
			    script {
    
    
					println "Hello Pipeline!"
					println env.JOB_NAME
					println env.BUILD_NUMBER
				}
			}
		}
		
		stage("Init paramters in json") {
    
    
			steps {
    
    
			    script {
    
    
					println "read josn input file"
					def packagename = "xxx"
					println packagename
				    callTestingJob(packagename)
				}
			}
		}	
	}
}
def callTestingJob(packagename){
    
    
    println packagename
	build job:"1", propagate: false, wait: true,parameters: [
	     string(name:'packagename', value: packagename)
	                   ]	
}


Definieren Sie eine callTestingJob-Funktion, um den Code zum Aufrufen von Job B hinzuzufügen. TransferPaketnamenDieser Parameter.

2. Die relevante Konfiguration von Projekt 1 lautet wie folgt:
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie einen Parameter hinzu, dessen Name mit dem der ProjectB-Pipeline-Demo Fügen Sie hier eine Bildbeschreibung ein
identisch ist, und testen Sie ihn mit Windows-Batch-Befehlen, um festzustellen, ob packeageName gedruckt werden kann.

3. Sehen Sie sich die Konsolenausgabe an

Fügen Sie hier eine Bildbeschreibung ein

Die erste ist die Konsolenausgabe der ProjectB-Pipeline-Demo. Sie können sehen, dass 1 aufgerufen wird

Dann schauen wir uns die Konsolenausgabe von 1 an und
Fügen Sie hier eine Bildbeschreibung ein
sehen, dass, ausgelöst durch Nummer 34 der ProjectB-Pipeline-Demo, auch der von uns übergebene Parameter packageName übergeben wurde.

Verweise

【1】 https://blog.csdn.net/winter199/article/details/90604933
【2】 https://blog.csdn.net/u011541946/article/details/89344002

Ich denke du magst

Origin blog.csdn.net/weixin_43841844/article/details/109636156
Empfohlen
Rangfolge