Настроить блок в Jenkins pipejob, используя DSL? - PullRequest
0 голосов
/ 12 ноября 2018

Пытаюсь написать конвейерное задание DSL Jenkins, используя jobs-dsl, и не уверен, что я нарушаю пару ограничений конвейерного задания или пропускаю что-то более фундаментальное.

1 - Настройка «Опрос игнорирует фиксации в определенных путях» в разделе «Дополнительные действия» с использованием блока конфигурации, похоже, не работает должным образом в задании конвейера; Я проверил, и этот блок настройки работает, как и ожидалось, в dsl для фристайла. Поиск и не удалось найти что-либо релевантное - может ли кто-нибудь подтвердить, поддерживается ли / не поддерживается нижеприведенное в нижеследующем конвейерном задании?

    pipelineJob("ProjA/pipeline") 
    {
        logRotator
        {
          daysToKeep 10
          numToKeep 30
        }
        definition 
        {
          cpsScm 
          {
            scm
            {
                git('git@github.com:sample-org/pipeline.git', '*/develop')
            }
            configure { gitScm -> 
                gitScm / 'extensions' << 'hudson.plugins.git.extensions.impl.PathRestriction' {
                    excludedRegions('sample/dirs')
                }
              }
           }
        }
     }

2 - Как мы передаем учетные данные в git в блоке scm под конвейером? Работает на вольной работе, но не может заставить ее работать здесь

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 января 2019

Встроенный DSL поддерживает только базовые опции. Но Dynamic DSL поддерживает практически любую опцию.

pipelineJob('example') {
  definition {
    cpsScmFlowDefinition {
      scm {
        gitSCM {
          userRemoteConfigs {
            userRemoteConfig {
              url('git@github.com:sample-org/pipeline.git')
              name('master')
              refspec(null)
              credentialsId('example')
            }
          }
          branches {
            branchSpec {
              name('*/develop')
            }
          }
          extensions {
            pathRestriction {
              includedRegions(null)
              excludedRegions('sample/dirs')
            } 
          }
          doGenerateSubmoduleConfigurations(false)
          browser {}
          gitTool(null)
        }
      }
      scriptPath('Jenkinsfile')
    }
  }
}
0 голосов
/ 12 ноября 2018

FYI для обычного конвейера

Проверка Git с использованием учетных данных, относящихся к шагу git plugin :

    stage('checkout') {
        git credentialsId: '<credentialsID from credentials plugin>',
        url: 'git@repository.foo/repoName.git',
        branch: 'master' 
    }

Reg. scm plugin step

 stage('checkout') {
     checkout scm: [$class: 'GitSCM',
        userRemoteConfigs: [[url: 'https://repository.foo/git/fooRepoName.git' ,
            credentialsId: 'credentialsIDToUseFromCredentialsPlugin']],
            branches: [[name:'refs/tags/TAGNAME']]],
        poll:false      
 }

stage('checkout') {
     checkout scm: [$class: 'GitSCM',
        userRemoteConfigs: [[url: 'https://repository.foo/git/fooRepoName.git' ,
            credentialsId: 'credentialsIDToUseFromCredentialsPlugin']],
            branches: [[name:'BRANCHNAME']]],
        poll:false      
 }

И я никогда не искал опрос, работает он или нет

...