ジェンキンスパイプライン-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