0

I am trying to setup a jenkins pipeline script that sends out an email when there is a job that have been running for more than 24 hours.

// Long running jobs
pipeline {
    agent any
     environment {
         EMAIL_ALERT_TO = "address"
         EMAIL_ALERT_CC = "address"
    }
    stages {
        stage('def methods') {
            steps {
                script {
                Jenkins.instance.getAllItems(Job).each(){ job -> job.isBuildable()
                if (job.isBuilding()){
                    def myBuild= job.getLastBuild()
                    def runningSince= groovy.time.TimeCategory.minus( new Date(), myBuild.getTime() )
                    echo "myBuild = ${myBuild}"
                    echo "runningSince = ${runningSince}"
                    env.myBuild = myBuild
                    env.runningSince = runningSince
                }
                }
                }
            }
        }
    }
    post {
      // Email out the results
        always {
            script {
            if (runningSince.hours >= 1){
                mail to: "${env.EMAIL_ALERT_CC}",
                cc: "${env.EMAIL_ALERT_CC}",
                subject: "Long Running Jobs",
                body: "Build: ${myBuild} ---- Has Been Running for ${runningSince.hours} hours:${runningSince.minutes} minutes"
            }
            }
        }
    }
}

I am seeing RejectedAccessException which appears to be related to arrays/list.

Yugansh
  • 365
  • 3
  • 9
Ken L
  • 1
  • well its all mumbled and i cant edit the code. – Ken L Aug 19 '19 at 23:02
  • check if this is similar to https://stackoverflow.com/questions/38276341/jenkins-ci-pipeline-scripts-not-permitted-to-use-method-groovy-lang-groovyobject – Yugansh Aug 20 '19 at 00:22
  • Thanks but the error I m seeing is slightly different {code}org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: No such field found: field java.lang.String hours at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.unclassifiedField(SandboxInterceptor.java:425) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:409){code} – Ken L Aug 20 '19 at 00:50

1 Answers1