In jenkins job, create file using system groovy in current workspace

前端 未结 4 637
鱼传尺愫
鱼传尺愫 2020-12-08 10:41

my task is to collect node details and list them in certail format. I need to write data to a file and save it as csv file and attach it as artifacts. But i am not able to c

4条回答
  •  孤街浪徒
    2020-12-08 11:13

    The manager object is not available depending on how the groovy is invoked. e.g. in "execute system groovy script".

    You can find the BadgeManager class in jenkins GroovyPostBuild plugin API here: https://javadoc.jenkins.io/plugin/groovy-postbuild/org/jvnet/hudson/plugins/groovypostbuild/GroovyPostbuildRecorder.BadgeManager.html#addShortText-java.lang.String-

    ANSWER: Import the GroovyPostBuild plugin and create a new manager object. e.g. here a job with "Execute System Groovy Script" create a manager object and call the addShortText method:

    // java.lang.Object
    // org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder.BadgeManager
    // Constructor and Description
    // BadgeManager(hudson.model.Run build, hudson.model.TaskListener listener, hudson.model.Result scriptFailureResult) 
    
    import hudson.model.*
    import org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildAction
    
    def build = Thread.currentThread().executable
    
    manager = new org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder.BadgeManager(build, null, null)
    manager.addShortText("MANAGER TEST", "black", "limegreen", "0px", "white")
    

    This question gives a hint: See here for a nearly working answer: In jenkins job, create file using system groovy in current workspace org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildAction and build.getActions().add(GroovyPostbuildAction.createShortText(text, "black", "limegreen", "0px", "white"));

提交回复
热议问题