Jenkins Pipeline Aのif-else条件の間でJenkins Pipeline Bを呼び出す方法は?

Jenkins Pipeline Aのif-else条件の間でJenkins Pipeline 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

関連情報