Jenkins and GitLab integration URL issue - jenkins

I'm trying to use the integration between GitLab and Jenkins.
My issue is all my projects in Jenkins are in this format:
http://IP:8080/job/JOBNAME/
but in GitLab it is hardcoded .../project/....
So, every time I try to push something I can't connect and I receive a 404.
I don't know either how to change URI in Jenkins or in GitLab.

In your GitLab server's web UI open your project/repo → Settings → Webhooks → URL: ...there should be your Jenkins URL....

If you are looking for webhook then you have to configure it under your respository. Settings -> webhooks and there you have add your
Jenkins job url in this format
https://<YOUR JENKINS URL/project/YOUR JOB NAME
and don't forget to copy the token from jenkins job and add it to section here in gitlab secret token field.

Related

HTTP ERROR 403 No valid crumb was included in the request error with GitLab+Jenkins on windows environment

I know the similar question has been asked many time before. I am trying to integarte GitLab with Jenkins through webhook and have an error as mentioned in title. I found the answer as well as per my situation which is listed here
Gitlab+Jenkins through webhook it shows this error, how can I solve this?.
The thing which is not understanable for me right now is as per the suggested solution
For me the URL for webhook what I saw was wrong. It was https://JENKINS_URL/job/YOUR_JOB it should be https://JENKINS_URL/project/YOUR_JOB, changing the job to project solved my issue
I am not able to find a way that how I can change job URL from https://JENKINS_URL/job/YOUR_JOB to https://JENKINS_URL/project/YOUR_JOB within Jenkins to build job URL as per GitLab webhook settings.
Any help will be much appreciated. Thanks
Update - My Jenkins server is configured with URL http://JENKINS_URL:8080/
trying
login to jenkins > Manage Jenkins > Configure System
in here, config your server jenkins
after back to Dashboard > New Item > Freestyle project.
In Build Triggers, select Build when a change is pushed to GitLab. GitLab webhook URL: X
after Advanced > Secret Token > Generate. you have key Y
login to gitlab, open your project.
in your project click Settings choose Webhooks.
paste X, Y in your config jenkins to here.
click Test if gitlab noti:
you are success!!!
You don't need to reconfigure your Jenkins instance. What you should do is the following:
Go to the Jenkins project you want to use;
Go to Configure -> Build triggers section;
See the name of the checkbox Build when a change is pushed to GitLab. GitLab webhook URL: <TARGET URL>
What you're looking for is the "TARGET URL" from step 3. See the screenshot for an example of such an URL. As you can see it has the needed project format:

Trigger Jenkins Multi-Branch Pipeline from GitLab push

I run a Gitlab and a Jenkins server locally. I connected those two using the gitlab-branch-source plugin. For every repository in gitlab i create a multibranch-pipeline job in jenkins. When a user pushes code, I want the corresponding job to be executed.
I'v tried a solution suggestend in this post and this one. Both of them don't seem to work.
In the gitlab server settings on the jenkins server I've set the check at "Manage Web Hooks". The personal access token which is used for the integration has the scopes "api, sudo".
What else could I try?

Jenkins freestyle project using Gitlab API Token never clone the repository, no error, build always succeed

I've followed this gitlab tutorial link, to connect my jenkins server to Gitlab.
Everyting went fine, and I've :
created a personnal access token in my GitLab profile
created a GitLab API Token using the my GitLab access token in jenkins system configuration as stated in the tutorial
create a freestyle jenkins job and Choose my GitLab connection from the dropdown
checked the Build when a change is pushed to GitLab checkbox.
checked the Accepted Merge Request Events and Closed Merge Request Events checkboxes
generated a secret token from the above freestyle project
use the freestyle jenkins project secret token to create a webhook in the GitLab project repository integration settings
Till there everything went fine.
Then I added and push code including a jenkinsFile to my GitLab repository, and get to the Jenkins WebUI to view the build status, but the pipeline shown green saying build success, while nothing happened, no code has been retrieved from GitLab (as shown in the attached console output screenshot), thus no jenkinsFile executed nor error message shown.
I tried to run the buils manually from WebUI but same result, no way to trigger my pipeline on git push events from GitLab
I thought may be I should select Git in Source Code Management section (I left it to None as the tutorial doesn't mention it) but if I choose Git as SCM I cannot select my GitLab API Token credentials, seeming like we cannot use GitLab plugin (API Token) and Git plugin for the same build project.
SO how should I proceed to be able build my jenkins project from GitLab with a jenkinsFile, using GitLab API Token?
Does the GitLab tutorial miss some useful steps?
OK, I think I understand the issue now.
There are two sets of credentials: GitLab API token for access to GitLab Webhooks and a separate one for cloning the git repo during builds.
So we can't use the GitLab API token for cloning the repository. For this you have to use either a SSH key or a Username/Password combination. Furthermore this dropdown is part of the git plugin not the gitlab plugin.
So the gitlab plugin can't tell which credentials are available as credentials for this dropdown.

BitBucket Webhook - Unable to connect to Jenkins URL

I am trying to create a webhook in BitBucket to trigger a build in Jenkins, but when I enter my Jenkins URL, and I test the connection, I get the error "Unable to connect to the URL specified, check the host and port are correct." I am using the URL http://localhost:8080/bitbucket-hook/ (with the last back slash included) and I can confirm that in Jenkins, my "Jenkins URL" is set to http://localhost:8080/. In Jenkins, I have installed the plugin "BitBucket Server Integration", and under Configure System -> Bitbucket Server Integration, I have connected to the Bitbucket server (and when I test the connection, it says "Jenkins can connect with the Bitbucket Server", so I am pretty sure Jenkins is configured correctly). I don't have credentials set up in Jenkins for the Bitbucket Server configuration, is this necessary even though when I test the connection, it seems to be able to connect? Is my url for the BitBucket webhook correct?? Is there anything else you can think of that I might not have configured correctly so when I test the connection on BitBucket, it will connect properly?
I just ran through a similar setup, to answer to your questions:
yes, I think you will have to use credentials of a user having admin permissions on the repository upon which you want to create the webhook.
Read below, anyway the Webhook URL I got is in the form < jenkins-url >/bitbucket-server-webhook/trigger
The pipeline
According to my experience, the creation of the Webhook is demanded to Jenkins, you don't have to do anything on your own other than creating a new Pipeline object.
Having set the Bitbucket Server Integration configuration up in fact is not enough for the creation of the Webhook, to do that you have to
create a new Pipeline
flag the Build Trigger "Bitbucket Server trigger build after push"
in the Pipeline section, use as Definition "Pipeline Script from SCM" and fill the other fields according to the configuration you have set before.
Point 3 is saying you are retrieving your Pipeline definition from a file stored in Bitbucket itself, you can also customise the name of the file Jenkins is going to look for (by default this should be Jenkinsfile), and use the "Pipeline Syntax" option to get the snippet of code you will use as step in your Jenkinsfile.
Once you have created your Pipeline in Jenkins, the webhook should appear in the right section in your Bitbucket Server repository.

integrating gitlab with jenkins using webhooks does not work

I am trying to trigger jenkins pipeline on gitlab push to branch and tag.
Using Jenkins ver. 2.176.2 and gitlab version 10.7.3-ee.
Although I have supposedly set up the webhooks properly, I do not see the jenkins job being triggered.
I have installed the gitlab plugin for jenkins, and configured the gitlab server, including the Personal Access Token for GitLab APIs access generated in gitlab.
I have defined the webhook (currently requesting trigger on all events). (for testing, ssl verification is off).
When testing the webhook in gitlab, I consistently receive HTTP error 500.
In jenkins pipeline job, I have selected "build when change is pushed to gitlab. gitlab webhook..." - this is the URL I used when defining the webhook in gitlab, under "integrations" section.
When pushing to gitlab, I see no event listed under "integrations -> recent deliveries",
I see no log under jenkins logs "com.dabsquared.gitlabjenkins" logger (set to log level "FINEST".
And lastly, the pipeline job is not triggered as I expected.
Any leads will be very helpful.
Adding printscreen of the Jenkins configuration of the gitlab for reference to the comment I added on possibility this is issue with the personal access token
Jenkins gitlab server configuration
Go to Settings of Gitlab Project -> Integrations and type in the Jenkins Job project url in 'URL'. URL should take either form:
http://JENKINS_URL/project/PROJECT_NAME
http://JENKINS_URL/project/FOLDER/PROJECT_NAME
Notice that the url does not contain "job" within it and instead uses "project".
Make sure under Triggers, you have "Push Events" checked as well if you want the job to trigger whenever someone pushes a commit.
Finally, run a build against your Jenkinsfile first before testing the webhook so Jenkins will pick-up the trigger settings for Gitlab.
Please refer the link for more details.

Resources