Search code examples
jenkinskubernetesjenkins-pluginsjenkins-pipeline

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


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"
            }
        }
    }
}

Solution

  • 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'
            }
          }
        }
      }
    }