詹金斯管道-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
用于执行构建或管道的 Shell 命令可以插入管道 A 中您想要调用管道 B 的 Shell 脚本中。
您想要触发管道 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