Декларативный конвейер Дженкинса, не считывающий этапы или steps

#jenkins #jenkins-groovy

#Дженкинс #дженкинс-заводной

Вопрос:

Я новичок в мире jenkins и не уверен, почему он не считывает шаги в моем декларативном конвейере.

Я уверен, что это что-то простое, но, похоже, я не вижу, где ошибка.

 import cloud.GitClient
import cloud.SlackClient

def call(body) {
    def parameters = [:]
    body.resolveStrategy = Closure.DELEGATE_FIRST
    body.delegate = parameters
    body()

    pipeline {
      agent {
        kubernetes {
          cloud parameters['buildCloudId']
        }
      }
      stages {
        stage('Inform Build Start') {
          steps {
            script{
              slackClient.warn('Starting build!')
            }
          }
        }
        stage('Build Docker Images') {
          steps {
            checkout scm
            container('docker') {
              withCredentialsee(usernamePassword(credentialsId: parameters.docker.credentialsId, usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')) {
                sh """
                echo "$PASSWORD" | docker login -u $USERNAME --password-stdin hub.containers
                ./build.sh
                """
              }
            }
          }
          post {
            failure {
              script {
                slackClient.failed("Docker backend build *FAILED*! <${env.BUILD_URL}console|See log> for details.")
              }
            }
            success {
              script {
                slackClient.success("Docker backend build *COMPLETED*! <${env.BUILD_URL}console|See log> for details.")
              }
            }
        }
      }
    }
  }
}
  

В jenkins все отображается зеленым, но журналы показывают, что вообще ничего не запускалось.

Комментарии:

1. Не уверен, сможет ли Jenkins правильно проанализировать файл Jenkins, если вы используете его в функции. Ничто не может завершиться неудачей, если ничего не выполняется, не так ли?

2. Я видел другие декларативные конвейеры, отформатированные аналогичным образом, и они работают просто отлично. Вот почему меня сбивает с толку, почему это не работает.