젠킨스 파이프라인-A
pipeline{
stage('deploy'){
agent { label 'slave' }
steps{
script{
if [ "$deployenv" = dev ];
then
echo 'restart not required'
elif [ "$deployenv" = qa ];
then
echo "restart required"
//need to invoke another jenkins pipeline-B here
fi
}
}
답변1
빌드 또는 파이프라인을 실행하는 데 사용되는 셸 명령은 파이프라인 B를 호출하려는 파이프라인 A의 셸 스크립트에 삽입될 수 있습니다.
파이프 B를 트리거하려는 지점은 "SSH" 또는 "Curl" 또는 "Java CLI 클라이언트"를 사용하는 JENKINS API를 사용하여 제어할 수 있습니다.
SSH 사용:
ssh -l USERNAME -p JENKINSPORT SERVER COMMAND ## Pipeline B should be the COMMAND here
[[처음에는 SSH 액세스를 활성화하고 인증을 구성해야 합니다.]]
인용하다:https://www.jenkins.io/doc/book/managing/cli/#ssh
Java CLI 클라이언트 사용:
다음을 통해 클라이언트를 다운로드합니다.
JENKINS_URL/jnlpJars/jenkins-cli.jar
실행 방법:
java -jar jenkins-cli.jar [-s JENKINS_URL] [global options...] command [command options...] [arguments...] ## Pipeline B should be the COMMAND here
인용하다:https://www.jenkins.io/doc/book/managing/cli/#using-the-cli-client
컬:
이 같은:
curl -X POST http://....:8080/job/....
사용자 이름과 자격 증명을 사용하여
curl -X POST --user <jenkins_username>:<jenkins_API_key> http://<jenkins_server_url>/job/<your_jenkins_job_name>/build ## Pipeline B should be the COMMAND here
인용하다:https://myopswork.com/when-shell-scripts-meets-jenkins-61594f576e96