В Jenkins, есть ли способ выполнить конвейер, когда ветка источника PR обновляется? - PullRequest
0 голосов
/ 27 февраля 2020

Это мой Jenkinsfile:

pipeline {
  agent { docker { image 'node:10.16' } }
  stages {
    stage('PR To Dev') {
      when {
        changeRequest target: 'dev'
      }

      steps {
        sh 'npm install'
        sh 'npm run lint'
      }
    }
  }
}

Я пытаюсь запустить линнинг на каждый сделанный пиар (на Github). Этот конвейер работает и работает так, как задумано, когда я делаю начальный PR для ветки dev. Однако последующие коммиты на открытый PR игнорируются Jenkins, что отрицательно сказывается на полезности начальной проверки линта. Как я могу настроить Jenkins для отправки обновлений в ветку с открытым PR для ветки dev (или любой другой)?

1 Ответ

0 голосов
/ 28 февраля 2020

Достижение этой цели возможно. Это во многом зависит от плагина, который вы используете для интеграции GitHub с Jenkins, и от того, как вы сконфигурировали GitHub для использования веб-крючков Jenkins.

На стороне GitHub вы можете настроить запуск веб-крюка при различных событиях. Конфигурация по умолчанию - Push events (to any branch, whether on PR or not), All events (these can have many false positives) и опция Select individual events (find your right balance between events coverage and false positives)

enter image description here

На стороне Jenkins некоторые плагины будут предлагать больше настроек варианты сброса ненужных триггеров, например, чтобы избежать запуска проекта по PR обновления заголовка или описания (вместо кода) и т. д. c.

Я лично использую Generi c Плагин Webhook на конце Jenkins, а затем я анализирую json webhook, чтобы определить, запускать ли задание или нет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...