【发布时间】:2019-07-30 16:00:14
【问题描述】:
所以下面我附上了我的 Jenkins 流水线代码。 runansible.sh 脚本接受给定的参数,然后继续运行基于 paramMode 值的 ansible playbook。在终端中启动 shell 脚本时,我会得到 ansible playbook 运行的实时输出,但是当使用 Jenkins 管道时,我只是在回声阶段得到加载齿轮。在整个剧本完成之前,我不会得到任何回声输出,然后它会一次全部吐出。我需要能够像在终端中那样从剧本中获得实时输出,以便在构建构建时监控进度。我需要做什么才能获得实时输出?
def paramMode = "${params.mode}"
def paramClientCode = "${params.client_code}"
def paramPrevCodeDropID = "${params.prev_code_drop_id}"
def paramCodeDropID = "${params.code_drop_id}"
def paramReleaseID = "${params.release_id}"
def paramConfigZipVer = "${params.config_zip_ver}"
def paramEmailIDs = "${params.email_ids}"
node {
stage('one-click') {
node ('nodeName') {
git url: "gitURL", branch: "runParallel", credentialsId: "stash_id"
echo sh (returnStdout: true, script: """
./runansible.sh ${paramMode} -h ${paramClientCode} -c ${paramCodeDropID} -r ${paramReleaseID} -v ${paramConfigZipVer} -e ${paramEmailIDs} -p ${paramPrevCodeDropID}
""")
}
}
}
【问题讨论】:
标签: shell jenkins ansible jenkins-pipeline