Following snippet can collect all jobs into a list,

Just modify the script and please remove the filtering logic from
previous script,

And add the following snippet, that's all you will get all the jobs.

def jobsList=[];

Jenkins.instance.projects.collect {

String currentJob=it.name;

jobsList.add(currentJob)

}

Thanks,
Rajendra

On Fri 28 Sep, 2018, 8:03 PM , <gotviser...@gmail.com> wrote:

> Rajendra.  Thank you so much for the information.  It is very
> descriptive.  But, need some more help.  Sorry to bother, I'm new to
> Groovy.  You mentioned you are filtering the job name by 'Monitor'.  Just
> wanted to check how it works for this scenario
>
> I need details of all jobs, irrespective of which project/folder they
> belong to, from Saturday to Friday.  How does it work in this case?
>
> Also, I need this report to be emailed.  If you can suggest a method for
> that, will be helpful.  Thanks so much for the help.
>
> On Friday, September 28, 2018 at 3:00:14 AM UTC-4, rajendraprasad reddy
> wrote:
>>
>> Here is the Ggroovy Script:
>> import javax.mail.*
>> import javax.mail.internet.*
>> import jenkins.model.*
>> import java.text.SimpleDateFormat
>> import java.util.*;
>> import java.util.Calendar;
>> import java.lang.System;
>> import org.apache.tools.ant.Project
>> import org.apache.tools.ant.ProjectHelper
>>
>> def env="Dev_Jenkins_Server";
>> SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
>> sdf.setTimeZone(TimeZone.getTimeZone("EST"));
>> def  d=new Date();
>> def oneHourPrior=new Date(System.currentTimeMillis() - 3600 * 1000);
>> def currentTime=sdf.format(d);
>> def monitoringStartTime=trim(oneHourPrior)
>>
>>
>> def totalMonitoringJobs=0;
>> def testSuiteIndex=0;
>> def passedTestSuiteCount=0;
>> def failedTestSuiteCount=0;
>> def passedJobsList=[];
>> def failedJobsList=[];
>> def totalJobsList=[];
>>
>> println "Monitoring Start Time:        "+monitoringStartTime ;
>> println  "Monitoring Current Time:      "+currentTime;
>>
>> def matchedJobs = Jenkins.instance.items.findAll { job ->
>>     job.name =~ /Monitor/
>> }
>>
>> println
>> "*********************************************************************************"
>>        println "Total Monitoring Suites Count:"+matchedJobs.size();
>>        totalMonitoringJobs=matchedJobs.size();
>>
>> println "***********************************Listing all Available
>> Monitoring Projects**********************************************"
>>     def index=0;
>>      matchedJobs.each { job ->
>>                index=index+1;
>>     println index+". "+job.name;
>>                 totalJobsList<<job.name+"\n";
>> }
>>     println
>> "*********************************************************************************\n\n"
>>
>> println "********************************Todays Execution Summary
>> Results***************************************"
>>  matchedJobs.each { job ->
>>    def numbuilds = job.builds.size()
>>   if (numbuilds == 0) {
>>        println '  -> no build'
>>        return
>>   }
>>    def lastbuild = job.builds[0]
>>        Calendar cal1 = Calendar.getInstance();
>>         Calendar cal2 = Calendar.getInstance();
>>         cal1.setTime(monitoringStartTime);
>>         cal2.setTime(lastbuild.getTime());
>>
>>
>> if (cal2.after(cal1)) {
>>            testSuiteIndex=testSuiteIndex+1
>>             def rightPadding=50;
>>
>>
>> String jobName= job.name;
>> int requiredPadding=50-(jobName.size());
>> while(requiredPadding>0){
>>        jobName=jobName+" "
>>        requiredPadding--;
>> }
>>
>> def jobInfo=jobName+'\tlastbuild: ' + lastbuild.displayName + ' = ' +
>> lastbuild.result + ', time: ' + lastbuild.getTime();
>>
>> String latestbuildStatus=lastbuild.result;
>>      if( latestbuildStatus.equals("SUCCESS")){
>>                  passedTestSuiteCount=passedTestSuiteCount+1
>>                  //println "Found a Success Project"
>>                  jobInfo="\t\t"+ passedTestSuiteCount+" . "+jobInfo
>>                 passedJobsList.add(jobInfo)
>>         }
>>      if( latestbuildStatus.equals("FAILURE")){
>>                  failedTestSuiteCount=failedTestSuiteCount+1
>>                    jobInfo="\t\t"+ failedTestSuiteCount+" . "+jobInfo
>>                  failedJobsList.add(jobInfo)
>>         }
>>     }
>>
>> }
>>
>> String passedJobsInfo= passedJobsList.join("\n")
>> String failedJobsInfo= failedJobsList.join("\n")
>>
>> def jobsList ="";
>> def jobIndex=0;
>> totalJobsList.each{
>>      jobIndex=jobIndex+1;
>>      jobsList=jobIndex+". "+jobsList+it
>>
>> }
>>
>>
>> String cumulativeStatus="PASS"
>> if(failedJobsList.size()>0){
>>     cumulativeStatus="FAIL"
>> }
>>
>>
>> String  emailBody="""
>>      *******************************Todays Cumulative Test Execution
>> Summary Report*****************
>>      \tMonitoring Start Time:\t\t${monitoringStartTime}
>>      \tReport Genretated Time:\t${currentTime}
>>      \tTotal Monitoring Jobs Count Scheduled to run in Monitoring
>> Window:  ${totalMonitoringJobs}
>>      \tTotal Jobs Executed Today(As of Now): ${testSuiteIndex}
>>      \tTotal Jobs Passed Today(As of Now):    ${passedJobsList.size()}
>>      \tTotal Jobs Failed Today:(As of Now):     ${failedJobsList.size()}
>>      \tCumulative Result: ${cumulativeStatus}
>>
>> ***********************************************************************"""+"\n\n\t----->>>>>Failed
>> Jobs Count: ${failedJobsList.size()}
>> \n"+failedJobsInfo+"\n\n\t----->>>>>Passed Jobs Count:
>> ${passedJobsList.size()}\n"+passedJobsInfo+"\n\n"
>>
>> println emailBody;
>> String subject="${env} Jenkins Server:[ ${cumulativeStatus}]
>> ${currentTime}:  Cumulative Test Execution Summary Report";
>>
>>  public static Date trim(Date date) {
>>         Calendar calendar = Calendar.getInstance();
>>         calendar.setTime(date);
>>         calendar.add(Calendar.SECOND, 0);
>>         calendar.add(Calendar.MINUTE, -60);
>>         calendar.add(Calendar.HOUR_OF_DAY,0);
>>         return calendar.getTime();
>>     }
>>
>> def padRight(String s, int n) {
>>      String.format("%1-" + n + "s", s);
>> }
>>
>>
>> //You have Following use email service and send it :
>> def emailSubject=subject
>> def emailRecipientsList="email1,email2"
>> def email_subject= subject
>> def email_body= emailBody
>>
>> Above groovy script collects the pass failed jobs info and composes a
>> mail subject and mail body.
>>
>> *To use above groovy script:*
>> 1. Install Groovy plugin <https://plugins.jenkins.io/groovy> from plugin
>> manager
>> 2. Create a Freestyle project
>> 3. Good to 'Build. section of the free style job (Please look at attached
>> pic -1)
>> 4. Select Option  : * Execute system Groovy script*  (Please look at
>> attached pic -1)
>>         *Note*: Unless you install Groovy plugin
>> <https://plugins.jenkins.io/groovy> above option will not display build
>> options
>> 5. Select option Groovy Command
>> 6. Copy the above groovy Script in the next text field of build area
>> config
>> 7. If you wan to run this script periodically every day define a cron
>> entry  build triggers section  similar to the attached pic-3
>>
>> I am filtering jobs based on the job name, i.e if job name contains
>> 'Monitor' token then those jobs only checked  and consolidated report will
>> be generated.
>> You can also test above groovy script from script console of jenkins
>>
>>
>> *Note: *I have not added the email sending part in this, there are
>> sevceral ways to do that nased on the email service that you use
>> Let me know if you need help in that also
>>
>>
>>
>>
>>
>>
>> *Thanks and Regards,Rajendra Prasad Reddy Penumalli*
>>
>>
>> On Fri, 28 Sep 2018 at 08:21, <gotvi...@gmail.com> wrote:
>>
>>> Hi Rajendra.  Thank you so much for this news.  Would really appreciate
>>> help on implementing this.  Could you please guide me through?
>>>
>>> On Thursday, September 27, 2018 at 9:44:16 PM UTC-4, rajendraprasad
>>> reddy wrote:
>>>>
>>>> Hi ,
>>>> I did similar implementation for monitoring my Jenkins instance. But I
>>>> never used a plugin to do that , instead of plugins I used groovy script to
>>>> prepare mail body content and sending this mail body to intended recipient
>>>> list.
>>>> Using groovy it is possible to get any information of Jenkins using
>>>> Jenkins API calls.
>>>>
>>>> Let me know you need further help in implementing this procedure.
>>>>
>>>> Thanks,
>>>> Rajendra
>>>>
>>>> On Thu 27 Sep, 2018, 5:58 PM , <gotvi...@gmail.com> wrote:
>>>>
>>>>> Any help on this.  Little urgent.
>>>>>
>>>>> On Wednesday, September 26, 2018 at 3:29:23 PM UTC-4,
>>>>> gotvi...@gmail.com wrote:
>>>>>>
>>>>>> I'm looking to generate a report, as a job, which will provide the
>>>>>> global metrics of my Jenkins instance.  I need details in the report like
>>>>>> (1) How many jobs ran? (2) # of failed and successful jobs and every
>>>>>> possible metrics possible in one report.  I need to send this report 
>>>>>> every
>>>>>> week to my management, so would like to know if it's possible to 
>>>>>> schedule a
>>>>>> job to run this report every Friday and send the metrics by email to my
>>>>>> managers?  I found these two plugins - '*Global Build Status*' and 
>>>>>> '*Build
>>>>>> Metrics*'.  But not able to use these as part of a job, download the
>>>>>> report or email a link to the report or nothing of that sort.  Please 
>>>>>> help.
>>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Jenkins Users" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to jenkinsci-use...@googlegroups.com.
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/jenkinsci-users/b90c4f44-cae0-4c29-bdb1-2d9ceb0e1736%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/jenkinsci-users/b90c4f44-cae0-4c29-bdb1-2d9ceb0e1736%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Jenkins Users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to jenkinsci-use...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/jenkinsci-users/42f25477-6bdc-485e-95a9-466833637c9f%40googlegroups.com
>>> <https://groups.google.com/d/msgid/jenkinsci-users/42f25477-6bdc-485e-95a9-466833637c9f%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to jenkinsci-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-users/9fea91d6-dc7d-4720-b361-d3411df8c91c%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-users/9fea91d6-dc7d-4720-b361-d3411df8c91c%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/CAMrg02SQ2Ff4%3Ds51BrwhSHtNXn9iYrf0HuCtoboViHrNPs_vgQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to