How can I use post step in Jenkins pipeline with kubernetes plugin

1/22/2018

I try to use the post steps with the Jenkins kubernetes plugin. Does anyone has an idea?

java.lang.NoSuchMethodError: No such DSL method 'post' found among steps

My pipeline:

podTemplate(
        label: 'jenkins-pipeline',
        cloud: 'minikube',
        volumes: [
                hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'),
        ]) {

    node('jenkins-pipeline') {
        stage('test') {
            container('maven') {
                println 'do some testing stuff'
            }
        }

        post {
            always {
                println "test"
            }
        }
    }
}
-- Ben Keil
jenkins
jenkins-pipeline
jenkins-plugins
kubernetes

1 Answer

1/22/2018

As of this writing, Post is only supported in declarative pipelines.

You could have a look at their declarative example if you absolutely must use post.

pipeline {
  agent {
    kubernetes {
      //cloud 'kubernetes'
      label 'mypod'
      containerTemplate {
        name 'maven'
        image 'maven:3.3.9-jdk-8-alpine'
        ttyEnabled true
        command 'cat'
      }
    }
  }
  stages {
    stage('Run maven') {
      steps {
        container('maven') {
          sh 'mvn -version'
        }
      }
    }
  }
}
-- mghicks
Source: StackOverflow