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=${GIT_BRANCH/*\//} >>>> git rev-parse --quiet --verify ${LOCAL_GIT_BRANCH} && git branch -D >>>> ${LOCAL_GIT_BRANCH} >>>> git checkout -b ${LOCAL_GIT_BRANCH} ${GIT_COMMIT} >>>> >>>> With this in place, the build checks the code out to a local branch >>>> with the same name as the remote branch allowing the maven release:prepare >>>> goal to push changes to the branch that is being build. >>>> >>>> NOTE that we have tried to configure the "checkout to local branch" >>>> using the property that is configured by the Git ($BRANCH) but that results >>>> in local branch names of "origin/master", "origin/some_branch", ... This >>>> results in release:prepare doing pushes as "git push ... >>>> origin/some_branch:origin/some_branch" which results in a new remote branch >>>> named "origin/some_branch" We have seen repos with branches named >>>> "origin/master". As a result, the desired branch is not updated, and a new >>>> branch is created. >>>> >>>> QUESTION/SUGGESTION/... >>>> It would be nice to have an option in the Git plugin to "checkout to >>>> local branch" that derives the local branch name from the remote branch >>>> name, without having to add our pre-build step. Thus, if I select >>>> "origin/some_branch" from the Git parameter, I could checkout to local >>>> branch using the Git Parameter $BRANCH which would resolve to "some_branch" >>>> sans the "origin/" prefix. >>>> >>>> Steps to Reproduce: >>>> 1. configure a parameterized job with a git parameter using "BRANCH" as >>>> the parameter name >>>> 2. configure the Git scm additional behavour to checkout to local >>>> branch "$BRANCH" >>>> 3. configure job with as a maven release. >>>> 4. perform a maven releae, selecting one of the branches from the list >>>> of Git Parameter options. >>>> 5. observe console output to examine the "git push" commands generated >>>> by the release:prepare goal. >>>> >>>> >>>> -- >>> 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/37f6bc2d-d43e-44ff-a877-c525e5007842%40googlegroups.com >>> <https://groups.google.com/d/msgid/jenkinsci-users/37f6bc2d-d43e-44ff-a877-c525e5007842%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/cbaf764b-e3d9-480e-980c-23b772fd4a43%40googlegroups.com > <https://groups.google.com/d/msgid/jenkinsci-users/cbaf764b-e3d9-480e-980c-23b772fd4a43%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/CAO49JtEFL%2BNZhGbG3-gSQrgjdPVmArkoHoiekswPvEbRGB%2Bnkg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
