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/CAO49JtFRw%3Du4R2UYv3z3h_YPm%2BvJucUyRY71TdO0SvmxR%2BEwjw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to