젠킨스 파이프라인 A의 if-else 조건 사이에서 젠킨스 파이프라인 B를 호출하는 방법은 무엇입니까?

젠킨스 파이프라인 A의 if-else 조건 사이에서 젠킨스 파이프라인 B를 호출하는 방법은 무엇입니까?

젠킨스 파이프라인-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

관련 정보