Trigger Report

This report will go through your originating workflows (it's trivial to change to all workflows) and list off what non-manual triggers are in place to kick them off. This report has to be used in conjunction with a report template such as the HTML Template.


Meta-Data Script:

import com.urbancode.anthill3.domain.reporting.*;

ReportMetaData rmd = new ReportMetaData();

rmd.addColumn("Project");
rmd.addColumn("Branch");
rmd.addColumn("Triggers");

return rmd; 

Report Script:

import com.urbancode.anthill3.domain.profile.*;
import com.urbancode.anthill3.domain.project.*;
import com.urbancode.anthill3.domain.reporting.*;
import com.urbancode.anthill3.domain.trigger.*;
import com.urbancode.anthill3.domain.trigger.scheduled.*;
import com.urbancode.anthill3.domain.workflow.*;
import com.urbancode.anthill3.persistence.*;

Project[] projects = ProjectFactory.getInstance().restoreAll();
ReportOutput output = new ReportOutput(metaData);

for (int i = 0; i < projects.length; i++) {
    Workflow[] workflows = projects[i].getOriginatingWorkflowArray();
    project = null;
    for (int j = 0; j < workflows.length; j++) {
        ReportRow row = new ReportRow(output, " ");
        if (project != projects[i]) {
          row.setColumnValue("Project", projects[i].getName());
          project = projects[i];
        }
        else {
          row.setColumnValue("Project", " ");
        }
 
row.setColumnValue("Branch", workflows[j].getName());
        StringBuffer depBuf = new StringBuffer();
        Trigger[] triggers = workflows[j].getTriggerArray();
        StringBuffer trigBuf = new StringBuffer();
        if (workflows[j].isOriginating() &&
            workflows[j].getBuildProfile().getSourceConfig().
               getRepository().getRepositoryTrigger() != null) {

trigBuf.append("Builds on Commit");
            if (triggers.length != 0) {
               trigBuf.append("<br>");
            }
        }
        for (int k = 0; k < triggers.length; k++) {
            trigBuf.append(triggers[k].getName());
            if (triggers[k] instanceof ScheduledTrigger) {
                trigBuf.append(" - Fires next at: ");
                trigBuf.append(triggers[k].getSchedule().
                    getNextOccurrence().toString());
            }
            if (k < triggers.length - 1) {
                trigBuf.append("<br>");
            }
        }

row.setColumnValue("Triggers", trigBuf.toString());
        output.addRow(row);
    }
}

return output;  

Related Content

AnthillPro Template Reports
Report Templates