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 , <[email protected]> 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, <[email protected]> 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 , <[email protected]> wrote:
>>>>
>>>>> Any help on this.  Little urgent.
>>>>>
>>>>> On Wednesday, September 26, 2018 at 3:29:23 PM UTC-4,
>>>>> [email protected] 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 [email protected].
>>>>> 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 [email protected].
>>> 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 [email protected].
> 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 [email protected].
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