#github #jenkins-pipeline #jenkins-job-dsl
#github #дженкинс-конвейер #дженкинс-задание-dsl
Вопрос:
Я бы хотел использовать Jenkins job-dsl pipelineJob
для создания задания сборки для репозитория GitHub со статическим (и централизованно поддерживаемым) конвейером.
Но, глядя на документацию (https://jenkinsci.github.io/job-dsl-plugin/#path/javaposse.jobdsl.dsl.DslFactory.pipelineJob-definition) Я могу создать либо cps
со статическим скриптом, либо cpsScm
с SCM и ссылкой Jenkinsfile
на репозиторий.
Требование определения SCM исходит от gitParameter
плагина, который я хочу использовать для выбора редакции git.
Есть ли способ, как я могу использовать статический скрипт для конвейера вместе с SCM?
Обновление: это конкретно то, что я хотел бы сделать:
- определение конвейерного задания
- использование параметра git для выбора редакции
- объявить конкретный скрипт встроенным
pipelineJob("test") {
parameters {
gitParameter {
name('revision')
type('PT_BRANCH_TAG')
defaultValue('origin/master')
selectedValue('DEFAULT')
description('')
branch('')
branchFilter('')
tagFilter('')
useRepository('')
quickFilterEnabled(true)
}
}
logRotator {
numToKeep(50)
}
definition {
cpsScm {
scm {
git {
remote {
github("<my-repo>")
credentials('github')
}
branch('$revision')
}
}
script("""
@Library(value='pipeline-lib@master', changelog=false) _
myPipeline projectName: 'test-name'
""")
}
}
}
Комментарии:
1. Чтобы ответить на ваш вопрос буквально: да, вы можете вставить
Jenkinsfile
в консоль заданий, а затем использоватьcheckout
класс для извлечения кода. Однако это может быть не то, что вы на самом деле спрашиваете. В таком случае, пожалуйста, приведите пример того, что вы пытаетесь выполнить здесь.2. Привет, Мэтт, я добавил еще несколько деталей. Это помогает?
3. Да, тогда мой комментарий имеет отношение к тому, что вы хотите.
4. Извините, я что-то здесь пропустил. Вы имеете в виду, что я должен просто создать конвейер с приведенным выше
pipelineJob
определением? Это не сработает, посколькуscript
доступно только дляcps
определений, а не дляcpsScm
. Последнее я должен использовать, чтобы параметрgitParameter
мог извлекать доступные теги и имена ветвей. Знаете ли вы альтернативуgitParameter
?