Jenkinsfile, сценарий предварительной сборки - PullRequest
0 голосов
/ 13 марта 2019

Я использую трубопровод Дженкинса.Мой пример использования заключается в том, что разработчик использует простой файл * .ini, который анализируется скриптом python, чтобы добавлять или удалять этапы в файле jenkinsfile, когда они хотят.Я не хочу, чтобы они вручную редактировали файл jenkinsfile, потому что они не будут знать, как он работает.

Ожидаемое поведение: Когда запускается сборка, я хотел бы сначала выполнить скрипт python, который может записать вjenkinsfile для добавления / удаления рабочей области в соответствии с файлом * .ini.

Насколько я понимаю, когда событие вызывает сборку jenkins, первое, что он делает, открывает файл jenkins.Однако я хотел бы знать, возможно ли до этого запустить какой-нибудь сценарий предварительной сборки?

Спасибо

Редактировать: вот простое представление запуска конвейера (синий океан UI) Трубопровод

Например, файл ini можно удалить на этапе компиляции этапа Building Plan C, удалив отличный код, который делает это в файле jenkins

1 Ответ

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

Приведите пример для справки.

node {


  git url: '', branch: '', credentialsId: ''


  def parseStr = sh(script: 'python parser.py xxx.ini', returnStdout: true).trim()

  // the python parser expect to return a JSON string like: 
  // {'run_stage1': false, 'run_stage2': true}

  def parseObj = readJSON text: parseStr



    stage('stage 1') {
       if(parseObj.run_stage1) {
         echo 'stage1'
         ...
       }    
    }

    stage('stage 1') {
        if(parseObj.run_stage2) {
           echo 'stage1'
           ....
        }    
    }

}

Конвейер Jenkins поставил apis : readJSON, readYaml, readProperties для чтения файлов JSON, YAML и Properties.

Если вы выберете любой из них для замены файла ini, вы можете удалить анализатор python, чтобы сделать ваш конвейер более простым

...