Опубликовать состояние сборки перед ожиданием узла, использующего Jenkinsfile - PullRequest
0 голосов
/ 25 мая 2018

Мы используем jenkins вместе с экземпляром gitlab для управления исходным кодом.В моем Jenkinsfile я могу использовать шаги, чтобы установить статус сборки, который затем будет отображаться в gitlab с помощью

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

. На этапах это прекрасно работает.Тем не менее, я хотел бы установить статус сборки на «ожидающий» в самом начале, чтобы, если заданию на сборку нужно было ждать, пока узел, на котором он должен работать, станет доступным (то есть этапы не выполняются).В противном случае gitlab выдаст ошибку, что соединение с CI не работает.

Есть ли способ сделать это возможным, то есть установить состояние сборки до получения узла сборки.

В работе Дженкинса это выглядит так:

[Pipeline] node
Still waiting to schedule task

, и я хотел бы иметь что-то вроде этого:

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

1 Ответ

0 голосов
/ 28 мая 2018

Плагин, возможно, написан так, чтобы использовать в своих интересах узел и шаги Дженкинса, которые это включает.Таким образом, чтобы сделать это перед тем, как принять узел, вы должны написать API-вызовы в чистом виде.

Мы делаем это для того, чтобы заполнить выпадающий список артефактами из артефакта.Например, этот метод 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, организации учетных данных и совершения необходимых вызовов.

...