2014-07-14 9 views
1

개발자 지점에서 병합 한 후 통합 분기에서 빌드를 트리거하는 프로모션이있는 유스 케이스가 있습니다. 병합 된 변경 사항을 github의 원격 저장소로 통합 분기로 푸시하고 싶습니다. 내 코드는 여러 개의 SCM 플러그인을 사용하는 두 개의 다른 자식 리포지토리를 기반으로하며, Git Publisher는 다음 스택 추적에 실패합니다. 젠킨스 워크 플로우에서 구현 된 git 플로우를 얻으려고합니다. 개발자는 테스트를 위해 통합과 병합하려는 경우 항상 개발자 지점으로 이동하여 승격을 실행합니다. 테스트가 완료되고 릴리스 빌드가 실행될 마스터에서 변경 사항을 병합해야하는 경우 다른 프로모션이 실행됩니다. 젠킨스를 사용하여 어떻게 이것을 얻을 수 있습니까?Jenkins Git Publisher가 다중 SCM 플러그인으로 작동하지 않습니다.

javax.servlet.ServletException: java.lang.ClassCastException: org.jenkinsci.plugins.multiplescms.MultiSCM cannot be cast to hudson.plugins.git.GitSCM 
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:778) 
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) 
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248) 
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858) 
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631) 
at org.kohsuke.stapler.Stapler.service(Stapler.java:225) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) 
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494) 
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96) 
at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58) 
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) 
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) 
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) 
at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:74) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) 
at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67) 
at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) 
at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) 
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482) 
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474) 
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) 
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533) 
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) 
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) 
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428) 
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) 
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) 
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 
at org.eclipse.jetty.server.Server.handle(Server.java:370) 
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) 
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949) 
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011) 
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) 
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) 
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) 
at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:724) 
Caused by: java.lang.ClassCastException: org.jenkinsci.plugins.multiplescms.MultiSCM cannot be cast to hudson.plugins.git.GitSCM 
at hudson.plugins.git.GitPublisher$DescriptorImpl.doCheckRemote(GitPublisher.java:548) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298) 
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161) 
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96) 
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:120) 
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728) 
... 69 more 

답변

1

지금은 Git 게시가 다중 SCM을 지원하지 않습니다. 이 작업이 실제로 필요한 경우 각 디렉토리에서 cd ​​명령을 사용하여 태그를 배치하고 밀어 넣을 수 있습니다.

https://issues.jenkins-ci.org/browse/JENKINS-13779