Мой jenkinsfile больше не компилируется при попытке добавить действие после сборки - PullRequest
0 голосов
/ 29 января 2019

Мой jenkinsfile больше не компилируется при попытке добавить действие POST.Последний должен отображаться на выходе консоли jenkins в конце сборки.

Часть I посвящена моему коду jenkinsfile, для которого сборки выполняются хорошо.

Часть II - это патч, добавленный кчасть I, для которой не удается выполнить какие-либо сборки.

Я хочу объединить часть I и часть II, чтобы получить ожидаемый результат, описанный ниже, но интеграция не выполняется независимо от способа вставки.Я много чего перепробовал и сейчас застрял, поэтому любая помощь будет признательна.

// Часть I: мой базовый код

    node {
    def mvnHome
    stage('Preparation') { 
        git 'https://github.com/jglick/simple-maven-project-with-   tests.git'
      // Get the Maven tool.
      // ** NOTE: This 'M3' Maven tool must be configured
      // **       in the global configuration.           
      mvnHome = tool 'M3'
   }
    stage('Build') {
      // Run the maven build
      if (isUnix()) {
         sh "'${mvnHome}/bin/mvn' -Dmaven.test.failure.ignore clean package"
      } else {
         bat(/"${mvnHome}\bin\mvn" -Dmaven.test.failure.ignore clean package/)
      }
   }
   stage('Results') {
      junit '**/target/surefire-reports/TEST-*.xml'
      archiveArtifacts 'target/*.jar'
   }
 }

// Часть II: коддобавить к предыдущему коду

post {
    always {
        echo 'I have finished and deleting workspace'
        // deleteDir() 
    }
    success {
        echo 'Job succeeeded!
    }
    unstable {
        echo 'I am unstable :/'
    }
    failure {
        echo 'I failed :('
    }
    changed {
        echo 'Things were different before...'
    }
}

ожидаемый вывод консоли: «Задание выполнено!или я нестабилен: / или 'Я потерпел неудачу :(' ... в зависимости от состояния сборки jenkins и всегда очищаю рабочее пространство перед каждой новой сборкой

Фактическим результатом является сообщение об ошибке из вывода консоли: java.lang.NoSuchMethodError: Не найден такой «DSL» метод DSL среди шагов [архив, bat, build, catchError, извлечение, deleteDir, dir ......

1 Ответ

0 голосов
/ 29 января 2019

Вы смешиваете скриптовый и декларативный синтаксис конвейера.post является частью декларативного, но вы используете сценарий (не pipeline, а node шагов).

Вы должны использовать try / catch.

См. документацию .

...