当前位置: 首页 > 知识库问答 >
问题:

在等待使用 Jenkinsfile 的节点之前发布构建状态

墨安阳
2023-03-14

我们使用jenkins和gitlab实例进行源代码管理。在我的Jenkinsfile中,我可以使用steps来设置构建状态,然后使用

updateGitlabCommitStatus name: "build", state: "running"

这在阶段中工作正常。但是,我想在一开始就将构建状态设置为“挂起”,以便如果构建作业需要等到它应该在其上运行的节点变为可用(即不执行任何阶段)。否则,gitlab 将显示一个错误,指出与 CI 的连接不起作用。

有没有一种方法可以做到这一点,即在获取构建节点之前设置构建状态。

在 jenkins 的工作中,它看起来像这样:

[Pipeline] node
Still waiting to schedule task

我想要这样的东西:

[Pipeline] node
[Update commit status to pending]
Still waiting to schedule task

共有1个答案

蒋高杰
2023-03-14

这个插件可能是为了利用节点和jenkins的步骤而编写的。因此,为了在假设一个节点之前做到这一点,您必须自己编写纯groovy意义上的api调用。

我们这样做是为了用artifactory中的工件填充下拉列表。例如,这是out Artifactory getRequest方法:

// Artifactory Get Request - Consume in other methods
Object getRequest(url_string){

    URL url = url_string.toURL()

    // Open connection
    URLConnection connection = url.openConnection()

    connection.setRequestProperty ("Authorization", basicAuthString())

    // Open input stream
    InputStream inputStream = connection.getInputStream()
    @NonCPS
    json_data = new groovy.json.JsonSlurper().parseText(inputStream.text)
    // Close the stream
    inputStream.close()

    return json_data
}

请注意,即使这样做,您也需要将@NonCPS注释用于创建可序列化对象的任何内容。

如果是一个读取API、组织凭据和进行必要调用的问题。

 类似资料:
  • 问题内容: 我认为节点7.4支持异步/等待,但是此示例不起作用: 结果是: 如何在节点7.4上使用异步/等待? 问题答案: 是的,Node.js v7支持async-await,但将其锁定在标志后面。尚未准备就绪的功能不在此标记后面。 要在Node.js v7中使用async-await,只需使用此标志运行Node服务- async-await的正式发行版预定于4月启动的Node.js v8。 您

  • 我以为async/wait在节点7.4中得到了支持,但是这个例子不起作用: 结果: 如何在node 7.4中使用async/await?

  • 我正在使用Java、Selenium和chrome进行测试自动化。我想输入文本,等待它显示,然后单击TAB,我想避免,所以我使用以下代码: 但是它将字段留空并转到下一个元素。 < li >我如何修复它? < li >有没有办法在发送密钥之前使用显式等待?

  • 问题内容: 我正在尝试在Jenkinsfile中使用 通过SSH发布 插件。但是,我在方法中遇到了异常。这是我的代码: 如何摆脱异常? 问题答案: 这是因为某些变量不可序列化。 来自文件 由于管道必须在Jenkins重新启动后才能幸免,因此正在运行的程序的状态会定期保存到磁盘,以便以后可以恢复(保存在每个步骤之后或在步骤的中间进行,例如)。 您可以使用注释进行创建,使用

  • 我正在尝试在 Jenkinsfile 中使用 Publish over SSH 插件。但是,我在 方法中得到了异常 。这是我的代码: 我怎样才能消除异常?

  • 嗨,我想在文件上传到firebase后立即返回响应我可以上传,但我想在返回响应之前上传文件