Я думал, что это было простым делом, которое я хотел сделать, но, как я нахожу, с Дженкинсом ничего не кажется простым.
В основном все, что я хочу, это:
- Когда разработчик помещает новый код в ветку в BitBucket, я хочу, чтобы веб-крючок сказал Дженкинсу построить эту ветку и сообщить о состоянии сборки.
Веб-крючок работает.Тем не менее, что бы я ни пытался, я не могу заставить Дженкинса клонировать и проверить интересующий коммит, чтобы он мог затем использовать файл Дженкинса в этом коммите для запуска конвейера.Я всегда получаю что-то вроде:
eneric Cause
GenericWebhookEnvironmentContributor
Received:
{"pullRequest": {"fromRef": {"latestCommit": "f6be891de5c8d66023030d31e36a9fb9b01ef973"}}}
Contributing variables:
commitId = f6be891de5c8d66023030d31e36a9fb9b01ef973
hudson.plugins.git.GitException: Command "git fetch --tags --progress --prune -- origin +refs/heads/${commitId}:refs/remotes/origin/${commitId}" returned status code 128:
stdout:
stderr: fatal: Couldn't find remote ref refs/heads/${commitId}
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2172)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1864)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:78)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:545)
at jenkins.plugins.git.GitSCMFileSystem$BuilderImpl.build(GitSCMFileSystem.java:358)
at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:197)
at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:173)
at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:113)
at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:67)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:299)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE
Как видите, плагин Git, похоже, не разрешает переменные Contributing?Тем не менее, это работает в проектах Freestyle?
Я делаю это неправильно?Какой самый простой способ просто использовать Jenkinsfile в любом коммите, который был только что запущен для запуска конвейера?
PS Я использую последние версии всего