Build Jenkins Job based on voting result - jenkins

I have a scenario where on commit to repository branch let say UAT triggers a jenkins job or send email to multiple users. So when all of them click button in email or link Then is It should trigger the jenkins job build.
Can it be done if So then how. I tried to search but could not find a solution.

You could use a Promoted Builds Plugin
Your job could includes an email notification to the person/group responsible for approval. The email contains a link for promotion and an optional comment for approval notes:
Once approved, the next job will run.
I suggest you, using it with a pipeline strategy.
Sources :
https://blogs.perficient.com/2017/06/14/jenkins-delivery-pipeline-and-build-promotion-2/
https://www.cloudbees.com/blog/another-look-jenkins-promoted-builds-plugin
https://www.cloudbees.com/blog/continuous-integration-mobile-apps-jenkins-promoted-builds-qa-process-and-beta-distribution

Related

Jenkins: no email to recipients (integration with GitLab)

I'm using Jenkins (with Email Extension plugin ... ), integrated with GitLab.
For my job in my post build actions configuration, I see this (note that the recipients list is empty ...)
When the job fails I see this in the console output
15:29:50 New run name is '#25'
15:29:51 Sending e-mails to: name1.surname1#mydomain.com name2.surname2#mydomain.com
name3.surname3#mydomain.com
and emails are sent.
Where are these names found/are coming?
Any suggestion will be appreciated.
Your E-mail Notification is configured with the Send separate e-mails to individuals who broke the build option enabled. This makes the Mailer Plugin send a notification to each e-mail address involved in committing Changes for the build in case the build failed.
Changes and their authors are shown at each job page.
For example, there are 4 Git commits from 4 different authors (identified by email). Those commits gets pushed to the Git server and Jenkins job gets started. The job picks all those new commits and fails. The plugin then picks all distinct emails from the commits and sends an email to each commit author assuming at least one of them broke the build.

How to add manual approver to Jenkins job

I have a job that updates the databases for TEST servers and this job should be run by support after an approval from Account Manager
The job is parameterized and I need a way to pause build until the approver approves running the build
EX. When the support click on Build , an Email should be sent to the approver and whenever the approver responds to the link the job will start running.
I think you are asking a bit much here. Jenkins is a build tool rather than a change management tracker.
You can setup a manual approvals step e.g.
steps {
timeout(time: 1, unit: 'HOURS') {
input(message: "restart thes instance?", submitter: 'admin-team')
}
}
Where admin-team is an AD group referenced in an authorization strategy.
You also wouldnt get an email (you could set this up with more code), and the approver would have to login to Jenkins to check the button.
To do something like you are asking you would probably want to have Jira or something handle you approvals (e.g. move a ticket to approved), and that fires a webhook to start the Jenkins job.

Jenkins Email notification for multiple builds

I need suggestion for Jenkins project (multi-conf or pipeline) and plugins that will fit my work.
I have 10 "flavors" of the product, so I must build 10 times every time I commit to the repository (all in the same workspace, run in sequentially). Today I have 10 jobs (freestyle) and a "master" job that trigger the rest. I tried to add Email notification (using Email Extension Plugin) but I want only one Email report for all the builds, not 10 Emails.
I understand that I should change to one multi-configuration project or one pipeline project that will handle all the builds, so it will be easier to trigger only one Email, but what is the best practice to get only one Email report on multiple builds?
This is the exact scenario which we can achieve using Pipeline job(Jenkinsfile) from which you can trigger all those freeStyle build-jobs in parallel and collect the build-url and build-status of those and store in some file, then use the email plugin in the post-build task to send the status of your complete flow.
You can use the following link to find how to access build variable post calling that inside your pipeline.
How to I get the url of build triggered with build step on Jenkins?

How to combine multiple build started Jenkins messages into one email

I am using Jenkins, Gerrit and repo for my project. Often times I make code changes that span across git repositories (all managed through repo). When I submit a CL it triggers multiple Jenkins jobs (pre-submits, cross reference checks, linters...) which sends flurry of build started emails and finally one email with +/-verified status. Wondering if it is possible to combine all the build started emails into one (just like the final verified status email)
I would suggest you to use Pipeline where only one job will be triggered as part of Gerrit trigger and the Pipeline will take care of calling all other jobs and update the Gerrit with the final message.

Retrieve console log from a nested job in jenkins

I have a Matrix job (Job A) with that call build sub job (B) using Jenkins Parameterized Trigger plugin.
In the Parent Job (Mtrix) i use Editable Email Notification to trigger each configuration.
I want to get 15 lines from child job (B) build log for each configuration to add it in the email (if the build fails).
How can I do such thing ?
This plugin allows you to configure every aspect of email notifications. You can customize when an email is sent, who should receive it, and what the email says.
here is the link : https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin

Resources