/ / Groovy para obter tempo de disparo de Jenkins - jenkins, groovy

Script Groovy para obter tempo de disparo de Jenkins - jenkins, groovy

Estou tentando obter o tempo de ativação de todos os trabalhos em Jenkins para que eu possa decidir quando agendá-lo. O script a seguir exibe um objeto, mas não consegue obter a hora e a data do agendamento.

import org.jvnet.hudson.plugins.groovypostbuild.*;
import jenkins.plugins.slack.*;
jobs = hudson.model.Hudson.instance.getAllItems(FreeStyleProject)
for (job in jobs) {
timeT=job.triggers();
println "job: " + job.getFullName() + " " + timeT
}

Respostas:

-1 para resposta № 1

Provavelmente tarde demais, no entanto, isso funciona (pequena adoção de https://wiki.jenkins.io/display/JENKINS/Display+timer+triggers)

import hudson.model.*
import hudson.triggers.*

for(item in Hudson.instance.items) {
if(item.disabled || item instanceof com.cloudbees.hudson.plugins.folder.Folder) {
continue;
}
for(trigger in item.triggers.values()) {
if(trigger instanceof TimerTrigger) {
println("--- Timer trigger for " + item.name + " ---")
println(trigger.spec + "n")
}
}
}

Cria esta saída:

--- Timer trigger for XXX ---
30 4 * * 1-5

--- Timer trigger for YYY ---
0 6 * * 1-5

E um script ainda mais complexo (com algumas pequenas adoções da mesma fonte)

import hudson.model.*
import hudson.triggers.*

class Timer {
String name;
String spec;
int minute;
int hour;

Timer(pname,pspec) {
name=pname;
spec=pspec;
def parts=pspec.split(" ")
minute=parts[0].toInteger()
hour=parts[1].toInteger()
}
}

def timers = []

for(item in Hudson.instance.items) {
if(item instanceof com.cloudbees.hudson.plugins.folder.Folder) {
continue;
}
for(trigger in item.triggers.values()) {
if(trigger instanceof TimerTrigger) {
try {
def timer=new Timer(item.name,trigger.spec)
timers.add(timer)
} catch (Exception ex) {
println(trigger.spec + " " + item.name)
}
}
}
}

timers.sort{a,b -> a.hour <=> b.hour ?: a.minute <=> b.minute}
for (timer in timers) {
printf("%02d:%02d %sn",timer.hour,timer.minute,timer.name)
}

Cria:

  00:30 MyFixedScheduledJob
@midnight MyAroundMidnightJob
H 06 * * 1-5 MyJobWithHash