Joshua, perhaps you mean something like this?
The git commands likely miss something...
stage ("Publish to npm") {
steps {
script {
STAGE_NAME = "Publish to npm"
}
// Prepare the workspace
deleteDir()
sh '''
git checkout -b master
npm --no-git-tag-version version minor
git commit -am 'Bumped version number [ci skip]'
git push origin master
'''
}
}
}
On Friday, March 24, 2017 at 4:31:59 PM UTC+3, Idan Adar wrote:
>
> Thanks for the question Joshua.
> Here's the full Jenkinsfile: http://pastebin.com/nG4iTZhQ
>
> What happens is this:
> 1. Developers make a pull request to the master branch from their feature
> branch.
> 2. The pull_request webhook tells Jenkins to start working based on the
> stages in the Jenkinsfile. This includes: checkout, unit test, sonar
> analysis and merge to master.
> 3. The effect of the merge is basically a push webhook, which means that
> Jenkins is now going to run the same Jenkinsfile, but on the master branch
> instead of the Pull Request. So, this time: checkout, unit tests and
> publish to npm.
>
> In the case where it is running from the master branch, I also bump the
> version number in package.json and want to push this change back to the
> master branch.
> Developers will then update their feature branch with the updated
> package.json number...
>
> The part that is not working is the git push.
> You have mentioned "localbranch". I haven't heard of this or know how to
> do this. Can you elaborate?
>
> On Friday, March 24, 2017 at 4:18:28 PM UTC+3, Joshua Noble wrote:
>>
>> Generally when you do a basic checkout, the Jenkins workspace is in a
>> detached HEAD state. You want to check out to a local branch likely using "
>> localBranch". I have to ask though - if Jenkins does a merge of the PR -
>> why would you need to push?
>>
>> On Friday, March 24, 2017 at 7:37:57 AM UTC-4, Idan Adar wrote:
>>>
>>> How do you get "git push" to work in a Jenkinsfile? I am not sure what
>>> am I missing.
>>>
>>> The Jenkinsfile checkouts a repo using an access token (this is
>>> configured in the Jenkins UI for the job).
>>> The Jenkins file also does a merge of a PR in one of its stages:
>>>
>>> withCredentials([usernamePassword(credentialsId: '****',
>>> usernameVariable: 'ACCESS_TOKEN_USERNAME', passwordVariable:
>>> 'ACCESS_TOKEN_PASSWORD',)]) {
>>> sh "curl -X PUT -d '{\"commit_title\": \"Merge pull request\"}'
>>> https://***/pulls/$CHANGE_ID/merge?access_token=$ACCESS_TOKEN_PASSWORD"
>>> }
>>>
>>> But I can't get "git push" to work in another stage:
>>>
>>> git config --global user.name '****'
>>> git config --global user.email ****
>>> git commit -am 'Bumped version number'
>>> git remote set-url origin git@****.git
>>> git push origin master
>>>
>>> I tried wrapping the above in withCredential and also . with agent, but
>>> nothing works...
>>>
>>> Tips?
>>>
>>
--
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/8dc9d4fe-b60e-4576-b855-b703e9283cb7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.