来自Pipelinec和Openshift插件的SHA提交编号

来自Pipelinec和Openshift插件的SHA提交编号,openshift,jenkins-pipeline,Openshift,Jenkins Pipeline,当Github获得新的提交时,我使用withJenkins管道在OpenShift中运行构建 我还希望能够向github报告构建的状态 然而为了做到这一点,我需要知道刚刚构建的提交是什么。我正在使用以下管道配置 node() { stage 'build' def builder = openshiftBuild(buildConfig: 'my-web', showBuildLogs: 'true') stage 'deploy' openshiftDeploy(d

当Github获得新的提交时,我使用with
Jenkins管道
在OpenShift中运行构建

我还希望能够向github报告构建的状态

然而为了做到这一点,我需要知道刚刚构建的提交是什么。我正在使用以下管道配置

node() {

   stage 'build'
   def builder = openshiftBuild(buildConfig: 'my-web', showBuildLogs: 'true')

   stage 'deploy'
   openshiftDeploy(deploymentConfig: 'my-web')
   openshiftScale(deploymentConfig: 'my-web',replicaCount: '3')    

}
但是,我不知道如何从openshiftBuild步骤中获取提交SHA,因为这会执行git拉操作。

根据,您可以从
git\u commit
环境变量中获取它

如果稍后发生签出,您可以使用以下代码获得它:

def gitCommitId = sh(returnStdout: true, script: 'git rev-parse HEAD')

如果看不到管道的其余部分,很难判断,但看起来您只是触发了OpenShift S2I构建,这不是管道构建的建议。您应该让管道为应用程序构建工件,然后使用S2I二进制构建让OpenShift将工件放入运行时容器中。例如,请参阅。

这是否有帮助?恐怕不行:(因为git拉取发生在openshift构建中,所以此时变量似乎不可访问。您可以尝试
builder.getCommitID()吗)
从插件代码看,它似乎应该具有提交id?如果上述操作不起作用,您是否有权访问oc二进制文件?它似乎不起作用,因为一旦构建器完成,对象就会被清空。因此我得到一个空引用。我有权访问oc,但由于管道本身在Openshift中,我不确定我们是否可以调用它来自内部的OC命令。由于open shift builder似乎是自包含的,git rev parse似乎不存在。还尝试回显所有env,但git_提交不存在(在生成器运行之前或之后)。