Как отключить опцию «построить сейчас»? - PullRequest
0 голосов
/ 08 марта 2019

Для данного скриптового конвейера (jenkins) конвейер должен запускаться только через webhook из GitLab *. Параметр 1001 *

Build Now должен быть отключен для этого конвейера.


Можем ли мынастроить Jenkins, чтобы отключить параметр Build Now для конкретного задания сценария конвейера в jenkins?

Ответы [ 3 ]

2 голосов
/ 08 марта 2019

РЕДАКТИРОВАТЬ: Здесь решение с сценарием конвейера :

node {
   def userIdCause = currentBuild.getBuildCauses('hudson.model.Cause$UserIdCause')
   stage("Authorize Usage") {
      if (userIdCause.size()) {
          error('Aborting Build due to manual start - thats not permitted!')
     }
    }
}

Как насчет следующего решения без каких-либо дополнительных плагинов для декларативного конвейера :

pipeline {
...
stages {

  stage ("Authorize Usage") {
      when { expression { getCause() == "USER" } }
      steps {
            currentBuild.description = 'Aborting Build due to manual start - thats not permitted!'
            error('Aborting Build due to manual start - thats not permitted!')
      }
  }
...
}
1 голос
/ 08 марта 2019

Посмотрите на этот плагин, поставляемый на сайте Jenkin?Плагин Matrix Authorization Strategy:

Matrix Strategy

В частности, в этом разделе L Разрешить настройку разрешений для каждого агента.Это позволяет, например, ограничивать разрешения на сборку для каждого агента при использовании плагина Authorize Project (JENKINS-46654)

0 голосов
/ 12 марта 2019

The currentBuild variable, which is of type RunWrapper, may be used to refer to the currently running build...

Источник: https://opensource.triology.de/jenkins/pipeline-syntax/globals.

hudson.model - это имя пакета большинства соответствующих базовых классов jenkins.«Гудзон», потому что Дженкинс когда-то был клонирован из кодовой базы его предка по имени «Гудзон».

Вы можете посмотреть их здесь: https://javadoc.jenkins.io/hudson/model/package-summary.html.

Там вы также найдете https://javadoc.jenkins.io/hudson/model/Cause.UserIdCause.html.Прямой указание пакета $ classname в некоторых методах, таких как getbuildcauses, - простая идея команды разработчиков jenkins.Это снижает вероятность сбоя и делает код лучше читаемым и понятным.

...