These days I am trying to configure a Jenkins job which will be triggered by tag added to remote branch. Following are the steps what I did:
Added hook on github side and set the event to "Branch or tag creation" (I can see the hook is correctly triggered on github (enterprise version)).
Create freestyle jenkins job (pipeline should be similar), in the git section configure git as below.
Check "triggers "GitHub hook trigger for GITScm polling" in Build triggers section
Then I try to change something and add tag to branch, and push to remote.
But still cannot trigger the job run on Jenkins automatically. I have searched a lot but still cannot make this work.
But when I change the event to "Pushes" on github side (others keep the same), then the job can be triggered.
Anyone have the idea? Thanks.
And how about Jenkin2 pipeline? No git section in job configuration.
I am using GitHub pull request builder to trigger pipeline builds from GitHub webhooks when developers make a PR.
To make sure I pull the pipeline script related to the PR I am using Pipeline script from SCM and specifying ${sha1} as the branch specifier. The issue is that when I trigger the build manually, Jenkins is trying to pull a ${sha1} branch (since the env variable doesn't exist).
Is there a way to default to master when triggering the build manually?
If there is the way to trigger Jenkins build via push to a specific branch on GitLab. At this moment I am using GitLab webhooks integration, to run a specific job? Now it starts after the push to any branch, but I need to start a job from push to the specific branch.
It's now possible since Gitlab 11.3 (https://about.gitlab.com/2018/09/22/gitlab-11-3-released/)
Does not appear to be possible currently by selecting a branch in the GitLab webhook. Feel free to watch progress on this new feature in the GitLab issue Filter web hooks by branch.
I did note in the issue comments the following that might help you configure things via Jenkins:
Jenkins GitLab plugin has an option to filter WebHooks by branch. Under Build Triggers --> Build when a change is pushed to GitLab --> Advanced...
I'm having trouble getting my webhook in bitbucket server to start a Jenkins job. I've read through the other answered questions on here and can't get it going.
Bitbucket setup:
No special plugins installed
In repository settings I have a webhook set up
URL: http://[my jenkins url]/bitbucket-hook/ (yes I have the trailing slash)
Repo Push event selected
Jenkins setup:
Bitbucket plugin installed
Created new job
Set SCM to Git and added repo details
Set branches to build to either ** or refs/heads/rob-jenkins (a branch in git)
Build when a change is pushed to bitbucket selected
What I do:
I make a change to a file in rob-jenkins branch, push and the job is not started in Jenkins.
What I see:
In bitbucket, repo settings, webhooks I can see the webhook fired as soon as the commit is pushed. It has a 200 http status code, response body is empty.
In Jenkins I've set up a logger for
com.cloudbees.jenkins.plugins.BitbucketHookReceiver
com.cloudbees.jenkins.plugins.BitbucketJobProbe
com.cloudbees.jenkins.plugins.BitbucketPayloadProcessor
com.cloudbees.jenkins.plugins.BitBucketTrigger
And when I look at those logs I can see only 1 entry from com.cloudbees.jenkins.plugins.BitbucketHookReceiver
Received commit hook notification : {"eventKey":"repo:refs_changed","date":"2018-05-22T12:18:11+1000","actor":{"name":"xxxxxx","emailAddress":"xxxxxx#xxxxxx.com","id":53,"displayName":"xxxxxx","active":true,"slug":"xxxxxxx","type":"NORMAL"},"repository":{"slug":"xxxxx","id":1,"name":"xxxxx","scmId":"git","state":"AVAILABLE","statusMessage":"Available","forkable":true,"project":{"key":"SS","id":2,"name":"xxxxx","description":"xxxxxx","public":false,"type":"NORMAL"},"public":false},"changes":[{"ref":{"id":"refs/heads/rob-jenkins","displayId":"rob-jenkins","type":"BRANCH"},"refId":"refs/heads/rob-jenkins","fromHash":"1d9ad42fa404c893853094b0072e5b839f787589","toHash":"9bf7dc873f355259e4338ee80afbd246ecbb48a9","type":"UPDATE"}]}
There are no other entries in the log.
In the job itself, the BitBucket Hook Log screen just says "Polling has not run yet."
No idea why it isn't triggering the Jenkins job... what am I missing?
I've tried setting the Poll SCM manually and that didn't make a difference.
I've done a manual build and it works fine
as commented by #tomas-bjerre the resolution was to use a different plugin
I would recommend using thie plugin instead: github.com/jenkinsci/generic-webhook-trigger-plugin – Tomas Bjerre yesterday
No plugin needed. Just add a post-recieve hook under your repo in Bitbucket. On Jenkins, under Build Triggers, Trigger builds remotely (e.g., from scripts) Trigger builds remotely (e.g., from scripts) and specify an Authentication Token. A bash or python script can be used for the hook. Anytime a git push is run (not just a commit), you trigger a build!
Is there any way to to support automatic tag creation on Bitbucket via Jenkins pipeline?
I know how to build a branch a Tag is created or a push is done to the repo.
You can use the Git Publisher addon in the Post-build Actions to do this. It does a lot more than just auto pushing tags but that is what I use it for. Right now, I have it set to push the build number as a tag to the branch that is being used.