Jenkins добавляет Git Behaviors, используя отличные скрипты - PullRequest
0 голосов
/ 24 апреля 2019

Я создаю свой экземпляр Jenkins, используя скрипты groovy, потому что я автоматизирую процесс создания Jenkins.Я создаю этот скрипт:

/* Adds a multibranch pipeline job to Jenkins */
import hudson.model.*
import hudson.util.PersistedList
import jenkins.*
import jenkins.branch.*
import jenkins.model.*
import jenkins.model.Jenkins
import jenkins.plugins.git.*
import com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger
import org.jenkinsci.plugins.workflow.multibranch.*

// Create job
def env = System.getenv()
Jenkins jenkins = Jenkins.instance
String jobName = "Job"
String jobScript = "Jenkinsfile"
def job = jenkins.getItem(jobName)

// Create the folder if it doesn't exist
if (job == null) {
  job = jenkins.createProject(WorkflowMultiBranchProject.class, jobName)
}
job.getProjectFactory().setScriptPath(jobScript)

// Add git repo
String id = null
String remote = env.CODE_COMMIT_URL
String includes = "*"
String excludes = ""
boolean ignoreOnPushNotifications = false
GitSCMSource gitSCMSource = new GitSCMSource(id, remote, null, includes, excludes, ignoreOnPushNotifications)
BranchSource branchSource = new BranchSource(gitSCMSource)

// Remove and replace?
PersistedList sources = job.getSourcesList()
sources.clear()
sources.add(branchSource)
job.addTrigger(new PeriodicFolderTrigger("1m"))

и вставляю его в $JENKINS_HOME/ref/init.groovy.d/.Когда я начинал Дженкинс, работа уже была создана.Кроме того, мне нужно добавить некоторые Git Behaviors в мою работу, и я хотел бы знать, есть ли способ добавить Git Behaviors, используя groovy script?

Мой Git после создания:

enter image description here

Git-поведение, которое я хотел бы добавить при инициализации (обнаружение тегов, проверка на соответствие локальной ветви, пользовательское имя пользователя / адрес электронной почты)

enter image description here

Спасибо!

1 Ответ

1 голос
/ 25 апреля 2019

Я думаю, что вы хотите управлять через черты (на самом деле я не пробовал это):

import jenkins.plugins.git.traits.*

def traits = []
// Add your traits...
traits.add(new TagDiscoveryTrait())
traits.add(new LocalBranchTrait())
gitSCMSource.setTraits(traits)
...