I've read the differences between Gitlab Community and Enterprise in this page: https://about.gitlab.com/features/
Based on that page I understand the integration with Jenkins is only available in the enterprise version. However, I've seen that using web hooks I can trigger builds in Jenkins when a push happens in Gitlab.
So my question is which is the difference between community and enterprise regarding the integration with jenkins?
On the merge request page, there is a state widget that shows the status of tests for that particular merge request, and on your project home page, there is test status badging. These two UI elements only show up if you enable a 'ci service' on the project. In community you can turn it on with Gitlab CI. In enterprise you can set it up to work with jenkins.
Based on that page I understand the integration with Jenkins is only
available in the enterprise version.
This is no longer true, the Jenkins GitLab Plugin (from a 3rd party) works to hook Jenkins into GitLab as a CI provider.
The wiki page has an example setup with lots of details you'll need to get it working.
This will give per-commit build/test status indicators in GitLab and also hook into the Merge Request system (both in the local repo and when merge requests come from forked repos).
You can also integrate GitLab with Jenkins using the Generic Webhook Trigger Plugin.
An example of integrating with that plugin, to perform static code analysis on merge requests, is available in the Violation Comments to GitLab Plugin wiki page.
Related
I have an automated Jenkins workflow that runs and tests a java project. I need to get all the data and results that are outputted by Jenkins into Report Portal (RP).
Initially, I was under the impression that you have to install the ReportPortal.io Jenkins plugin to be able to configure Jenkins to communicate with RP.
However, it appears that the plugin will eventually be deprecated.
According to one of the RP devs, there are APIs that can be used, but investigating them on our RP server does not give very clear instructions on what every API does or if it is what is required to get test data from Jenkins to RP.
How then do I get Jenkins to send all generated data to RP?
I am very familiar with Jenkins, but I am extremely new to Report Portal.
ReportPortal is intended for test execution results collection, not for jenkins logs gathering.
In two words, you need to find reporting agent at their github organization which depends on your testing framework (e.g. junit, testng, jbehave) and integrate it into your project.
Here is example for TestNG framework:
https://github.com/reportportal/example-java-TestNG/
I am working on a Visual Regression Testing project, that requires Percy. I followed the instructions for Repository Integrations. The instructions only show 'Connect your GitHub or GitLab repositories to add visual testing to pull/merge requests.', but I want to integrate with Gerrit. And also Jenkins, I cannot find any relative stuff that helps me for the integration on manage Jenkins page as I follow the instructions on Percy.
While Percy doesn't have a native Gerrit integration yet, you can use Percy webhooks to get notifications about when Percy builds are finished, visual changes are ready for review, and when they've been reviewed and approved, which you could use to set statuses in Gerrit. For Jenkins, please see https://docs.percy.io/docs/jenkins — I would suggest you try getting the local setup working first with your application and then go from there, since it should be pretty easy to port that setup into your CI system (just need to set PERCY_TOKEN environment variable).
How can i integrate Jira and Gitlab and status will change on request!
Git commit -> ED-1511 #AutomationState Running
Jira ticket (ED-1511) - >> will change AutomationState on Running
I don't think that you can do this with the out of the box functionality of Jira and Gitlab.
From the structure of your commit message it looks like you are trying to use the smart commits functionality in Jira. Smart commits only allow you to perform three actions:
Log time
Comment on an issue
Transition an issue to a new workflow state
This is not something you can do with smart commits. In addition the current Jira Gitlab integration doesn't seem to support smart commits.
If you wanted to build this functionality you could probably build something yourself that:
Listens for Gitlab webhooks
On receipt of a Gitlab webhook calls the Jira REST api to modify the issue
If I understand your question correctly, the GitLab integration with JIRA described here should do what you want. I only recently set this up with our JIRA cloud instance and GitLab running in an AWS instance, and I haven't tried to integrate transitioning JIRA tickets from Git commit messages. However, the documentation seems to indicate that it is possible.
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.
What do you put into the system hook URL? I see a lot of examples but they look like JSON scripts to me.
I'm trying to configure gitlab to hook jenkins to create projects when projects are generated in gitlab. I'd also like builds to be run when a merge (pull) request is generated for a repo.
I've followed the steps outlined here for the gitlab hook plugin:
http://doc.gitlab.com/ee/integration/jenkins.html
But it's still not generating builds on push requests. Perhaps i don't have something setup right?
I have also tried and failed to configure Gitlab to integrate with Jenkins by following the instructions at http://doc.gitlab.com/ee/integration/jenkins.html#jenkins-service
For me the reason was that I didn't have Gitlab EE installed. The page specifically states: "The Jenkins project service code is only available in GitLab EE"
I discovered by chance my answer. In gitlab under the project settings you can add the following hook to trigger a build on a pull request or commit.
http://gitlab.example.com/job/example_project/build?token=UserToken.
I believe I saw it in Jenkins.
Now i've installed the gitlab plugin and i've tried the build_commit? hook and some other hooks but i was running into other errors such as asking for repo location when i've provided it. This does the trick though and i'm happy enough for now.