Background
I have a Jenkins job that does the resigning of android and ios apps based on the files uploaded to the Nexus repository.
I have 3 app versions for each android and ios.
Using nexus repo level webhook triggering concept + Jenkins generic Webhooks concept, we have achieved automated triggering of the builds when an app file is pushed to the nexus repository.
Problem
When all the 3 files are pushed in one go for any of the android or ios apps, can see only 2 Jenkins jobs webhook triggers only. one hook trigger is missing. Currently, we are seeing this issue very consistently.
The only observation that I have identified is, that whenever 3 files are pushed in one go, In the Jenkins job you see the webhook entry. see below screenshot of Jenkins job
I tried looking at multiple places but could not find a solution.
Any help here is appreciated...
Is there any possibility that we can count the number of webhooks received by the Jenkins job via code which we can see in the screenshot attached?
I have found similar issue reports in github.com: #64 #116 #126 #162 #171.
After going through all these solutions, The solution which worked for me is:
Uncheck the option "Disable Concurrent Builds" in Jenkins Job Configuration
Parameterize the job
Check options "Override Quiet Period" in Jenkins Job Configuration, under generic webhook configuration.
you can pass the quiet period from the trigger point as mentioned in the above image.
Related
We set up Gitlab with Jenkins integration, by using Jenkins Gitlab plugin and trigerring Jenkins webhooks (regular Pipeline type job) on gitlab Merge Request events (configured in Gitlab->Repo->Integrations) and we are successfully displaying the job build status on the Merge Request page (by using updateGitlabCommitStatus in the pipeline) - it is displayed as a status of some pipeline, which as I understand, is created and associated with the last commit in the source branch.
At some point, I canceled this pipeline from the MR page and after that, closed and reopened the MR, thus re-triggering the build.
Unfortunately, after cancelling the pipeline, the latest build job statuses were not reflected nor in the MR, nor in the pipeline itself. In the pipeline page it wouldn't even display the newest jobs running in jenkins.
I tried deleting this specific pipeline (via curl - we are using gitlab 12.3, which doesn't allow deleting pipelines via GUI) and creating a new Merge Request (same branch, same commit), hoping that a new pipeline would be created in this case, but nothing. It seems that I have no means to display build status again for this specific commit.
Any suggestions how to overcome this?
Thanks in advance!
I have a similar case and the only way to do this is to re-run the pipeline from GitLab... You have to enter to the integrations and there you should look for all request sent to the Jenkins. Once you locate the correct one, you click on resend and it should give you the correct status.
For my observations, the update GitLab status command only work when it is invoked from a webhook.
I need to run a jenkins job when PR is created to my staging branch in github. The jenkins will run some test cases and return the results to github and after that only we can merge the PR to the staging branch.
I'm using GitHub pull request builder plugin in jenkins. But my job in jenkins is not getting triggered when PR is created. The webhook from github is show 200 status and its working to buid a jenkins job for github push.
I followed https://medium.com/#mreigen/integrate-jenkins-builds-into-github-pull-requests-33bc053d6210 steps.
Can anybody help me with This!
Check the Jenkins logs first.
For example, jenkinsci/ghprb-plugin issue 286 mentioned:
It looks like GitHub is sending the wrong kind of events.
The plugin only accepts pull_request and issue_comment events.
GitHub is sending a push event, so I am not sure but you might have configured the webhook using a different plugin?
Check your master config and make sure you are only telling the job triggers to use webhooks. Also, make sure you have checked the box in each job you want that says to build using webhooks.
Issue 603 involved the option "Use github hooks for build triggering", but mention an Hook URL issue.
I'm developing a web application using python django. I want a CI service which can automatically pull the latest code from my github and run some test then deploy. I'm not familiar with CI, after searching for a while I found Jenkins seems to be a good solution. Can Jenkins be used for this?
Jenkins can be used with any project.
Regarding pulling the latest code, add the Jenkins GitHub plugin in order to be able to check "Build when a change is pushed to GitHub" under "Build Triggers".
That will launch your job on any new pushed commit on the GitHub repo.
From there, a Jenkins job can execute any command that you would do in command-line, provided the agent on which said job will be scheduled and executed has the necessary tools in its PATH (here python)
An alternative (which does not involved Jenkins) is to setup a webhook and a listener on your server which will detect a "push event" sent by said webhook.
I want to integrate Jenkins with JIRA Cloud.
I want Jenkins to start build job when i'm updating Issue Status in JIRA.
example: when the issue in jira is going from status IN PROGRESS to DEV COMPLETED, I want Jenkis to start a build.
regards, Maja
Usually the flow is a little bit different.
After you done with the development you should add JIRA ticket number in commit.
Then create pull request (if you use Git as VCS) and merge it to main branch.
Git server will trigger build on the Jenkins side (you should find Jenkins plugin for your case).
After build is done there Jenkins can send update status to Jira (via Jenkins JIRA plugin
There are some variations. For example you want to allow merge only when build on Jenkins was successful. In this case JIRA update should be performed by Git service.
Thank you for your fast response, but we got different situation than the given answer. I will try to explain clearly.
1. we got Jira on cloud that successfully communicate with Gitlab. (there is a build in jenkins after commit in Jira)
2. and we got one test Jenkins on our local machine
Jira is configured in Jenkins and we got all needed plugins in Jenkins.
Now we want, with every changed status on the issue in Jira (from IN PROGRESS to DEV COMPLETED), Jenkins to make an automatic build on the job.
Additionaly, Is there any Jenkins Plugin for Jira CLOUD that could help us?
At this time, there is no Jenkins plugin / add-on for JIRA cloud, even though it is in high demand. It is rumored there may be one coming out in November / December 2017 as a beta.
If you are using Bitbucket, I'd recommend checking out Pipelines. Or, take a look at Bamboo or TeamCity as these tools integrate directly with JIRA Software Cloud.
I want to show user details of user who has triggered build on jenkns. I have integrated gitlab and jenkins and gitlab triggers the build on jenkins via web hook. We log in to gitlab through LDAP. Is there any way to show user details got from gitlab on Jenkins ???? Thanks in advance
At the moment, I don't believe this is possible. But it could be implemented.
In most cases where Jenkins jobs are triggered via Git webhook, the job itself is not triggered directly, but rather Jenkins is informed that for a given Git URI, there may have been changes.
Jenkins then polls Git for changes and, if something new was found, triggers a build of the jobs that use that repository. So at this point, various jobs just start, without receiving any special information about the webhook push that happened.
Also, a new build could have been triggered by multiple commits, from several different people, so it may not make sense to show a single person's name as being the one that triggered a build.
However, there are special implementations that understand the webhook payload format of different hosting services (e.g. GitHub, Bitbucket etc.).
Indeed, the GitLab Hook plugin looks like it does this: if you start a build via the /gitlab/build_now webhook endpoint, then on the build page, you'll see why the build started, e.g. "triggered by merge request feature -> develop" or "triggered by push on branch develop with 2 commits".
While it seems that part of the plugin does read an author's name from the payload (presumably for merge requests), this isn't currently shown on the build page.
So you could try implementing this or filing a feature request on the Jenkins plugin.
As a short term workaround, you can also look at the "Changes" page for each build. There you can see which commits were in that build, and the author names should be shown next to each one.
You may have to configure the "repository browser" under the Git section in the job configuration for this to work.