I use various versions of maven, including Maven 3.2.5, and the latest versions of Oracle Java 7 and Oracle Java 8 on the platforms where I compile and run. I also use OpenJDK 7 and OpenJDK 8 on at least a few of the platforms.
I also built and tested on FreeBSD 10.1 using OpenJDK 7. That's the closest I can approximate to a MacOS machine. It fails with a hundred or more test failures, but not with the message you're seeing. I built and tested on FreeBSD 10.1 using OpenJDK 8. It also fails with a hundred or more test failures, but not the message you're seeing. I am able to run slave agents on FreeBSD, and the git plugin and git client plugin are able to clone repositories, but I can't compile and test successfully on FreeBSD with either OpenJDK 7 or OpenJDK 8. I think the problem you're seeing is either platform specific (like my FreeBSD problem), or environment and configuration specific. Unfortunately, I don't have any way to do further diagnosis. You might check with Craig Rodrigues on this mailing list. I believe he's a FreeBSD developer. I don't think I've ever seen a Darwin developer on the list. Mark Waite On Tue, Jan 5, 2016 at 7:02 PM Michael Giroux <[email protected]> wrote: > Mac OS should not matter. Maven is Java, and Java is platform neutral (in > theory), but maven version may be of interest. > > What is your specific build environment? > > > > On Tuesday, January 5, 2016 at 6:02:56 PM UTC-7, Mark Waite wrote: > >> That's a very strange message. The only reference I could find to that >> message was a wiki article from 2011. See >> https://wiki.jenkins-ci.org/display/JENKINS/My+class+is+missing+descriptor in >> case that gives you any help. >> >> I see that you're running on MacOS, and I don't have a MacOS machine in >> my mix of development and test environments, so there may be something >> specific to the Mac. >> >> Mark Waite >> >> On Tue, Jan 5, 2016 at 4:29 PM Michael Giroux <[email protected]> wrote: >> > Attaching build.log for complete build result. shows maven version and >>> java versions at head of file. >>> >>> >>> On Tuesday, January 5, 2016 at 4:25:25 PM UTC-7, Michael Giroux wrote: >>>> >>>> I'm running a build now, will attach console output when tests >>>> complete. Here is an example of a failure: >>>> >>>> java.lang.AssertionError: class >>>> hudson.plugins.git.util.DefaultBuildChooser is missing its descriptor >>>> >>>> at jenkins.model.Jenkins.getDescriptorOrDie(Jenkins.java:1165) >>>> >>>> at >>>> hudson.plugins.git.util.BuildChooser.getDescriptor(BuildChooser.java:142) >>>> >>>> at >>>> hudson.plugins.git.util.BuildChooser.getDisplayName(BuildChooser.java:45) >>>> >>>> at >>>> hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:555) >>>> >>>> at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:529) >>>> >>>> at hudson.scm.SCM.compareRemoteRevisionWith(SCM.java:384) >>>> >>>> at hudson.scm.SCM.poll(SCM.java:401) >>>> >>>> at >>>> hudson.model.AbstractProject.pollWithWorkspace(AbstractProject.java:1450) >>>> >>>> at hudson.model.AbstractProject._poll(AbstractProject.java:1421) >>>> >>>> at hudson.model.AbstractProject.poll(AbstractProject.java:1332) >>>> >>>> at hudson.plugins.git.SCMTriggerTest.check(SCMTriggerTest.java:271) >>>> >>>> at >>>> hudson.plugins.git.SCMTriggerTest.testCommitAsBranchSpec_feature4_sha1(SCMTriggerTest.java:206) >>>> >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> >>>> at >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>> >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>> >>>> at java.lang.reflect.Method.invoke(Method.java:497) >>>> >>>> at >>>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) >>>> >>>> at >>>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) >>>> >>>> at >>>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) >>>> >>>> at >>>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) >>>> >>>> at >>>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) >>>> >>>> at >>>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) >>>> >>>> at org.jvnet.hudson.test.JenkinsRule$2.evaluate(JenkinsRule.java:486) >>>> >>>> at org.junit.rules.RunRules.evaluate(RunRules.java:20) >>>> >>>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) >>>> >>>> at >>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) >>>> >>>> at >>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) >>>> >>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) >>>> >>>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) >>>> >>>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) >>>> >>>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) >>>> >>>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) >>>> >>>> at org.junit.runners.ParentRunner.run(ParentRunner.java:363) >>>> >>>> at >>>> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283) >>>> >>>> at >>>> org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173) >>>> >>>> at >>>> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) >>>> >>>> at >>>> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128) >>>> >>>> at >>>> org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203) >>>> >>>> at >>>> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155) >>>> >>>> at >>>> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) >>>> >>>> >>>> testCommitAsBranchSpec_feature4_branchName(hudson.plugins.git.JGitSCMTriggerLocalPollTest) >>>> Time elapsed: 10.183 sec <<< FAILURE! >>>> >>>> java.lang.AssertionError: class >>>> hudson.plugins.git.util.DefaultBuildChooser is missing its descriptor >>>> >>>> at jenkins.model.Jenkins.getDescriptorOrDie(Jenkins.java:1165) >>>> >>>> at >>>> hudson.plugins.git.util.BuildChooser.getDescriptor(BuildChooser.java:142) >>>> >>>> at >>>> hudson.plugins.git.util.BuildChooser.getDisplayName(BuildChooser.java:45) >>>> >>>> at >>>> hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:555) >>>> >>>> at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:529) >>>> >>>> at hudson.scm.SCM.compareRemoteRevisionWith(SCM.java:384) >>>> >>>> at hudson.scm.SCM.poll(SCM.java:401) >>>> >>>> at >>>> hudson.model.AbstractProject.pollWithWorkspace(AbstractProject.java:1450) >>>> >>>> at hudson.model.AbstractProject._poll(AbstractProject.java:1421) >>>> >>>> at hudson.model.AbstractProject.poll(AbstractProject.java:1332) >>>> >>>> at hudson.plugins.git.SCMTriggerTest.check(SCMTriggerTest.java:271) >>>> >>>> at >>>> hudson.plugins.git.SCMTriggerTest.testCommitAsBranchSpec_feature4_branchName(SCMTriggerTest.java:214) >>>> >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> >>>> at >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>> >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>> >>>> at java.lang.reflect.Method.invoke(Method.java:497) >>>> >>>> at >>>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) >>>> >>>> at >>>> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) >>>> >>>> at >>>> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) >>>> >>>> at >>>> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) >>>> >>>> at >>>> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) >>>> >>>> at >>>> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) >>>> >>>> at org.jvnet.hudson.test.JenkinsRule$2.evaluate(JenkinsRule.java:486) >>>> >>>> at org.junit.rules.RunRules.evaluate(RunRules.java:20) >>>> >>>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) >>>> >>>> at >>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) >>>> >>>> at >>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) >>>> >>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) >>>> >>>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) >>>> >>>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) >>>> >>>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) >>>> >>>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) >>>> >>>> at org.junit.runners.ParentRunner.run(ParentRunner.java:363) >>>> >>>> at >>>> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283) >>>> >>>> at >>>> org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173) >>>> >>>> at >>>> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) >>>> >>>> at >>>> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128) >>>> >>>> at >>>> org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203) >>>> >>>> at >>>> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155) >>>> >>>> at >>>> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) >>>> >>>> >>>> Running hudson.plugins.git.JGitSCMTriggerRemotePollTest >>>> >>>> >>>> >>>> On Tuesday, January 5, 2016 at 3:55:01 PM UTC-7, Mark Waite wrote: >>>>> >>>>> I'm interested in the test failures you're seeing, since there are >>>>> currently no test failures on the Cloudbees execution of the >>>>> automated tests >>>>> <https://jenkins.ci.cloudbees.com/job/plugins/job/git-plugin/1031/> on >>>>> the master branch, and there were only three random failures on my >>>>> execution of the automated tests on CentOS 6, CentOS 7, Debian 6, Debian >>>>> 7, >>>>> Debian 8, Windows 7, and Windows 10, with Java 7 and Java 8. >>>>> >>>>> Mark Waite >>>>> >>>>> On Tue, Jan 5, 2016 at 3:39 PM Michael Giroux <[email protected]> >>>>> wrote: >>>>> >>>>>> Before I start making changes, I'm building from master and getting >>>>>> test failures. Is there a document that explains additional environment >>>>>> setup needed to work on plugins? >>>>>> >>>>>> >>>>>> On Tuesday, January 5, 2016 at 12:59:55 PM UTC-7, Mark Waite wrote: >>>>>> >>>>>>> That is am interesting idea. Giving a semantic meaning to am empty >>>>>>> field should not alert behavior for non-empty fields. Will you be >>>>>>> coding >>>>>>> it? >>>>>>> >>>>>>> Mark Waite >>>>>>> >>>>>>> On Tue, Jan 5, 2016, 11:47 AM Michael Giroux <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>> Mark, >>>>>>>> >>>>>>>> I think there may be a simple solution that can be implemented in >>>>>>>> the Git plugin. If the job is configured with additional behavior >>>>>>>> "checkout to local branch" AND the local branch name is left blank, >>>>>>>> then >>>>>>>> the Git plugin could do a checkout of the configured remote branch sans >>>>>>>> "origin/". I think this allows for current behavior while also >>>>>>>> allowing >>>>>>>> maven release builds to run. >>>>>>>> >>>>>>>> Michael >>>>>>>> >>>>>>>> >>>>>>>> On Thursday, December 31, 2015 at 8:41:53 AM UTC-7, Mark Waite >>>>>>>> wrote: >>>>>>>> >>>>>>>>> I think your logic is very reasonable. The git plugin seems like >>>>>>>>> the right place to do that. Since the need is to reference a >>>>>>>>> substring of >>>>>>>>> the current GIT_BRANCH value within the context of a Jenkins job, it >>>>>>>>> seems >>>>>>>>> like an addition to the token macro keywords allowed on GIT_BRANCH >>>>>>>>> might >>>>>>>>> meet your need. >>>>>>>>> >>>>>>>>> You might refer to >>>>>>>>> https://issues.jenkins-ci.org/browse/JENKINS-25465 for a >>>>>>>>> discussion of the fullName=false parameter to GIT_BRANCH, in case >>>>>>>>> that will >>>>>>>>> already handle your case. >>>>>>>>> >>>>>>>>> Mark Waite >>>>>>>>> >>>>>>>>> On Thu, Dec 31, 2015 at 6:07 AM Michael Giroux <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>> Accepting that the Git Parameter plugin is technically correct, >>>>>>>>>> lets get back to the maven release build issue. >>>>>>>>>> 1. to do a maven release, we MUST configure the "checkout to >>>>>>>>>> local branch" option, or define a pre build step to do a git >>>>>>>>>> checkout into >>>>>>>>>> a local branch. >>>>>>>>>> 2. the local branch name MUST be the effective name on the remote >>>>>>>>>> (sans origin/) to allow the maven release:prepare to push the pom >>>>>>>>>> changes >>>>>>>>>> to the correct branch. >>>>>>>>>> 3. we currently can not use the value from the Git Parameter >>>>>>>>>> plugin because that includes the "origin/" prefix resulting in a new >>>>>>>>>> branch >>>>>>>>>> created on the remote git repo. >>>>>>>>>> >>>>>>>>>> I'm not really sure where the option belongs, but to support >>>>>>>>>> doing a maven release on a branch specified by the Git Parameter >>>>>>>>>> plugin we >>>>>>>>>> need a clean way to get the code checked out into the correct local >>>>>>>>>> branch. >>>>>>>>>> >>>>>>>>>> The Git plugin could provide an option to derive local branch >>>>>>>>>> name, or the Git Parameter plugin could define an additional >>>>>>>>>> parameter >>>>>>>>>> containing the effective branch name. I'm not sure which is best >>>>>>>>>> approach. I suspect that the Git plugin should be able to operate >>>>>>>>>> whether >>>>>>>>>> the Git Parameter plugin has been configured or not, so I lean >>>>>>>>>> toward an >>>>>>>>>> option in Git plugin to "checkout to local branch" that ends up with >>>>>>>>>> the >>>>>>>>>> required local branch name, but there may be a more appropriate >>>>>>>>>> approach. >>>>>>>>>> >>>>>>>>>> What is the next step? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Wednesday, December 30, 2015 at 3:12:49 PM UTC-7, Mark Waite >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Could do that as well, though the git parameter plugin is >>>>>>>>>>> technically correct. It is showing the branch to be built, and the >>>>>>>>>>> branch >>>>>>>>>>> to be built truly is "origin/master", since there is no local >>>>>>>>>>> master branch >>>>>>>>>>> tracking the remote branch. >>>>>>>>>>> >>>>>>>>>>> Mark Waite >>>>>>>>>>> >>>>>>>>>>> On Wed, Dec 30, 2015 at 11:41 AM Michael Giroux < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>> Mark, I wonder if one of the issues I have is actually a defect >>>>>>>>>>>> in the Git Parameter plugin. Specifically, the values set by the >>>>>>>>>>>> Git >>>>>>>>>>>> Parameter plugin include the "origin/" prefix. When this is used >>>>>>>>>>>> as the >>>>>>>>>>>> value for checkout to local branch, AND the build is a maven >>>>>>>>>>>> release, we >>>>>>>>>>>> end up with a new branch in Stash "origin/master" (should be >>>>>>>>>>>> simply master) >>>>>>>>>>>> or "origin/some_other_branch". It seems that normal builds run >>>>>>>>>>>> just fine, >>>>>>>>>>>> but release builds result in pushes back to Git and here is where >>>>>>>>>>>> the >>>>>>>>>>>> branch names get messed up. >>>>>>>>>>>> >>>>>>>>>>>> Should I be asking the Git Parameter plugin developers to strip >>>>>>>>>>>> the leading "origin/" from the branch names that are assigned to >>>>>>>>>>>> the >>>>>>>>>>>> parameter? >>>>>>>>>>>> >>>>>>>>>>>> Michael >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Wednesday, December 30, 2015 at 11:22:33 AM UTC-7, Michael >>>>>>>>>>>> Giroux wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks Mark. Command line build runs fine w/o compile >>>>>>>>>>>>> errors. For your reference, this is a known Eclipse issue bug >>>>>>>>>>>>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=369592. >>>>>>>>>>>>> >>>>>>>>>>>>> On Wednesday, December 30, 2015 at 10:34:59 AM UTC-7, Mark >>>>>>>>>>>>> Waite wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> https://jenkins.ci.cloudbees.com/job/plugins/job/git-plugin/ (and >>>>>>>>>>>>>> my internal Jenkins server inside my firewall) confirm that the >>>>>>>>>>>>>> code on the >>>>>>>>>>>>>> master branch compiles correctly from the maven command line. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I run my debugger from Netbeans (rather than Eclipse) and can >>>>>>>>>>>>>> confirm that it compiles and runs from Netbeans as well. I >>>>>>>>>>>>>> don't use >>>>>>>>>>>>>> Eclipse, so I'm not much help wiht Eclipse specific failures. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Mark Waite >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Wed, Dec 30, 2015 at 8:31 AM Michael Giroux < >>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> BTW, the following patch resolves my compile errors, but not >>>>>>>>>>>>>>> sure if the cast to (Item) is the best choice. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> diff --git >>>>>>>>>>>>>>> a/src/test/java/hudson/plugins/git/GitSCMTest.java >>>>>>>>>>>>>>> b/src/test/java/hudson/plugins/git/GitSCMTest.java >>>>>>>>>>>>>>> index 3a14b10..a39e60c 100644 >>>>>>>>>>>>>>> --- a/src/test/java/hudson/plugins/git/GitSCMTest.java >>>>>>>>>>>>>>> +++ b/src/test/java/hudson/plugins/git/GitSCMTest.java >>>>>>>>>>>>>>> @@ -1203,7 +1203,7 @@ >>>>>>>>>>>>>>> false, >>>>>>>>>>>>>>> Collections.<SubmoduleConfig>emptyList(), >>>>>>>>>>>>>>> browser, null, null); >>>>>>>>>>>>>>> p.setScm(scm); >>>>>>>>>>>>>>> - configRoundtrip(p); >>>>>>>>>>>>>>> + configRoundtrip((Item)p); >>>>>>>>>>>>>>> assertEqualDataBoundBeans(scm,p.getScm()); >>>>>>>>>>>>>>> assertEquals("Wrong key", "git " + url, >>>>>>>>>>>>>>> scm.getKey()); >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> @@ -1215,7 +1215,7 @@ >>>>>>>>>>>>>>> FreeStyleProject p = createFreeStyleProject(); >>>>>>>>>>>>>>> GitSCM scm = new GitSCM(" >>>>>>>>>>>>>>> https://github.com/jenkinsci/jenkins"); >>>>>>>>>>>>>>> p.setScm(scm); >>>>>>>>>>>>>>> - configRoundtrip(p); >>>>>>>>>>>>>>> + configRoundtrip((Item)p); >>>>>>>>>>>>>>> assertEqualDataBoundBeans(scm,p.getScm()); >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Wednesday, December 30, 2015 at 10:29:37 AM UTC-7, >>>>>>>>>>>>>>> Michael Giroux wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Not making any changes to code, just trying to examine >>>>>>>>>>>>>>>> primary project source to understand what is being changed in >>>>>>>>>>>>>>>> the PRs. >>>>>>>>>>>>>>>> I cloned the primary git repo from >>>>>>>>>>>>>>>> https://github.com/jenkinsci/git-plugin.git so I could get >>>>>>>>>>>>>>>> some context for the PRs which show only the code being >>>>>>>>>>>>>>>> changed. Getting >>>>>>>>>>>>>>>> compile errors on unmodified project. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Eclipse version 4.5 (Mars), JDK 1.8.0 (also tried JDK >>>>>>>>>>>>>>>> 1.7.0) >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Wednesday, December 30, 2015 at 9:53:36 AM UTC-7, Mark >>>>>>>>>>>>>>>> Waite wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Don't attempt to evaluate the two pull requests in the >>>>>>>>>>>>>>>>> same repository. They are two different ideas that might >>>>>>>>>>>>>>>>> meet your need. >>>>>>>>>>>>>>>>> I suspect that one or the other will eventually be merged, >>>>>>>>>>>>>>>>> but not both. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Mark Waite >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Wed, Dec 30, 2015 at 7:21 AM Michael Giroux < >>>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Mark, I'm taking a look at the two pull requests. I >>>>>>>>>>>>>>>>>> cloned the repo so I can view code in Eclipse, but I'm >>>>>>>>>>>>>>>>>> getting compile >>>>>>>>>>>>>>>>>> errors in GitSCMTest.java: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Description Resource Path Location Type >>>>>>>>>>>>>>>>>> The method configRoundtrip(FreeStyleProject) is ambiguous >>>>>>>>>>>>>>>>>> for the type GitSCMTest GitSCMTest.java >>>>>>>>>>>>>>>>>> /git/src/test/java/hudson/plugins/git line 1206 Java >>>>>>>>>>>>>>>>>> Problem >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Suggestions? >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Michael >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Tuesday, December 29, 2015 at 10:47:14 PM UTC-7, Mark >>>>>>>>>>>>>>>>>> Waite wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> There is a pending pull request to the git plugin which >>>>>>>>>>>>>>>>>>> provides a new environment variable, GIT_SHORT_BRANCH_NAME. >>>>>>>>>>>>>>>>>>> The semantics >>>>>>>>>>>>>>>>>>> of that proposed environment variable are not quite what >>>>>>>>>>>>>>>>>>> you're describing, >>>>>>>>>>>>>>>>>>> but you might review the pull request to see if it is close >>>>>>>>>>>>>>>>>>> enough for your >>>>>>>>>>>>>>>>>>> use case. See >>>>>>>>>>>>>>>>>>> https://github.com/jenkinsci/git-plugin/pull/347 and >>>>>>>>>>>>>>>>>>> https://github.com/jenkinsci/git-plugin/pull/304 for >>>>>>>>>>>>>>>>>>> two different possibilities. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Mark Waite >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> On Tue, Dec 29, 2015 at 8:36 PM Michael Giroux < >>>>>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Yes. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> The issue I'm describing is a result of using the Git >>>>>>>>>>>>>>>>>>>> Parameter plugin which allows the user to select a branch, >>>>>>>>>>>>>>>>>>>> + the Git plugin >>>>>>>>>>>>>>>>>>>> which allows configuration of the branch to build and the >>>>>>>>>>>>>>>>>>>> local branch >>>>>>>>>>>>>>>>>>>> name, + maven release plugin which relies on local branch >>>>>>>>>>>>>>>>>>>> name for push to >>>>>>>>>>>>>>>>>>>> remote + Stash Webhook to Jenkins with triggers a build of >>>>>>>>>>>>>>>>>>>> any arbitrary >>>>>>>>>>>>>>>>>>>> branch. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> I will admit that one solution is to create two jobs in >>>>>>>>>>>>>>>>>>>> Jenkins to allow building of any arbitrary branch as >>>>>>>>>>>>>>>>>>>> triggered by the Stash >>>>>>>>>>>>>>>>>>>> web hook for jenkins, and a second job that is configured >>>>>>>>>>>>>>>>>>>> to build a branch >>>>>>>>>>>>>>>>>>>> specified by user supplied parameter values. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> The problem occurs when when attempting to configure a >>>>>>>>>>>>>>>>>>>> single jenkins build that allows for manual specification >>>>>>>>>>>>>>>>>>>> of branch via the >>>>>>>>>>>>>>>>>>>> Git parameter, and builds kicked off by the Stash web hook >>>>>>>>>>>>>>>>>>>> to jenkins. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> 1. to allow the jenkins web hook to initiate a build, >>>>>>>>>>>>>>>>>>>> it is necessary to configure the build to build any branch >>>>>>>>>>>>>>>>>>>> (leaving branch >>>>>>>>>>>>>>>>>>>> to build as blank). >>>>>>>>>>>>>>>>>>>> 2. to allow a maven release to build, you MUST specify >>>>>>>>>>>>>>>>>>>> a local branch name. Otherwise, the push to stash fails >>>>>>>>>>>>>>>>>>>> the build does not >>>>>>>>>>>>>>>>>>>> have a local branch name. >>>>>>>>>>>>>>>>>>>> 3. To meet condittion #1, the default value for the Git >>>>>>>>>>>>>>>>>>>> parameter must be "**" so that the branch to build is ANY >>>>>>>>>>>>>>>>>>>> (** or empty) >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> So basically, the issue is that if a build is >>>>>>>>>>>>>>>>>>>> configured to build any branch, and also has maven release >>>>>>>>>>>>>>>>>>>> configured, you >>>>>>>>>>>>>>>>>>>> need some way to get the code checked out to a local >>>>>>>>>>>>>>>>>>>> branch (additional >>>>>>>>>>>>>>>>>>>> behaviors) with the same name as the branch being built, >>>>>>>>>>>>>>>>>>>> and there is >>>>>>>>>>>>>>>>>>>> currently no way to do that. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> I tried to put "${GIT_BRANCH/*\//}" into the "checkout >>>>>>>>>>>>>>>>>>>> to local branch" but this did not work. It seems this >>>>>>>>>>>>>>>>>>>> field does not >>>>>>>>>>>>>>>>>>>> resolve environment variable references using full bash >>>>>>>>>>>>>>>>>>>> variable reference >>>>>>>>>>>>>>>>>>>> notation. Perhaps this is the solution. Extend the >>>>>>>>>>>>>>>>>>>> "checkout to local >>>>>>>>>>>>>>>>>>>> branch" to provide full bash resolution of the variable >>>>>>>>>>>>>>>>>>>> name. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> On Tuesday, December 29, 2015 at 10:03:25 AM UTC-7, >>>>>>>>>>>>>>>>>>>> Michael Giroux wrote: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Using Jenkins 1.609.3, Git plugin 2.4.0. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> We have configured most of our jobs to allow jobs to >>>>>>>>>>>>>>>>>>>>> be initiated by the Stash Webhook to Jenkins. To allow >>>>>>>>>>>>>>>>>>>>> developers to >>>>>>>>>>>>>>>>>>>>> manually initiate a build of any branch, the jobs use the >>>>>>>>>>>>>>>>>>>>> Git Parameter to >>>>>>>>>>>>>>>>>>>>> set a BRANCH variable. >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> Using this configuration, the Git Parameter is >>>>>>>>>>>>>>>>>>>>> configured to set "**" as the default branch to build. >>>>>>>>>>>>>>>>>>>>> This allows the >>>>>>>>>>>>>>>>>>>>> Stash Webhook to initiate a build of any branch. In >>>>>>>>>>>>>>>>>>>>> order to allow the job >>>>>>>>>>>>>>>>>>>>> to perform a maven release, we have configured the Git >>>>>>>>>>>>>>>>>>>>> SCM to checkout to >>>>>>>>>>>>>>>>>>>>> local branch "master". This all works well as long as we >>>>>>>>>>>>>>>>>>>>> are not doing a >>>>>>>>>>>>>>>>>>>>> maven release, or when we do a maven release on the >>>>>>>>>>>>>>>>>>>>> master branch. The >>>>>>>>>>>>>>>>>>>>> strategy breaks down if the developer attempts a maven >>>>>>>>>>>>>>>>>>>>> release on another >>>>>>>>>>>>>>>>>>>>> branch when the maven release:prepare goal tries to push >>>>>>>>>>>>>>>>>>>>> pom updates. Note >>>>>>>>>>>>>>>>>>>>> that the maven release plugin uses the current local >>>>>>>>>>>>>>>>>>>>> branch in the push as >>>>>>>>>>>>>>>>>>>>> "git push url localBranch:localBranch" As a result, when >>>>>>>>>>>>>>>>>>>>> the build is for >>>>>>>>>>>>>>>>>>>>> "some_branch" which has been checked out to local branch >>>>>>>>>>>>>>>>>>>>> "master" we get an >>>>>>>>>>>>>>>>>>>>> error on "git push ... master:master" because the remote >>>>>>>>>>>>>>>>>>>>> "master" is not in >>>>>>>>>>>>>>>>>>>>> sync with the local. No surprises here since the local >>>>>>>>>>>>>>>>>>>>> "master" is >>>>>>>>>>>>>>>>>>>>> actually "some_branch". >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> To resolve this, we have deleted the "checkout to >>>>>>>>>>>>>>>>>>>>> local branch" additional action, and added a pre-build >>>>>>>>>>>>>>>>>>>>> step that does the >>>>>>>>>>>>>>>>>>>>> following:' >>>>>>>>>>>>>>>>>>>>> # checkout to a local branch using the remote branch >>>>>>>>>>>>>>>>>>>>> name >>>>>>>>>>>>>>>>>>>>> LOCAL_GIT_BRANCH=${GI >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Jenkins Users" group. >>> >> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected]. >> >> >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/jenkinsci-users/b1636c11-3a56-41ed-ba5d-547dae02292a%40googlegroups.com >>> <https://groups.google.com/d/msgid/jenkinsci-users/b1636c11-3a56-41ed-ba5d-547dae02292a%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- > You received this message because you are subscribed to the Google Groups > "Jenkins Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-users/78815edf-b1a7-478a-bda1-6b722400fb55%40googlegroups.com > <https://groups.google.com/d/msgid/jenkinsci-users/78815edf-b1a7-478a-bda1-6b722400fb55%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAO49JtFAR%2BNRrJCUV%3DjgkqWVfnzKjd7SJOcDi7Q%2Bdo1%3DeZfrKA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
