Совместная библиотека декларативного конвейера - PullRequest
0 голосов
/ 18 декабря 2018

У меня возникла проблема при попытке реализовать общую библиотеку на моих серверах Jenkins.

Я получаю сообщение об ошибке: No such DSL method 'agent' found among steps

Я пытался удалитьагент и просто запустить на узле, но по-прежнему выдавать.Я следовал за следующим: https://jenkins.io/blog/2017/09/25/declarative-1/

Может кто-нибудь, пожалуйста, укажите, где я иду не так

vars / jenkinsJob.groovy

def call() {
    // Execute build pipeline job
    build_pipeline()
}

def build_pipeline() {
    agent {
       node {
          label params.SLAVE
      }
  }
        parameters {
            string(name: 'SETTINGS_CONFIG_FILE_NAME', defaultValue: 'maven.settings')
            string(name: 'SLAVE', defaultValue: 'new_slave')
        }

        environment {
            mvn = "docker run -it --rm --name my-maven-project -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.3-jdk-8"
        }

        stages {
            stage('Inject Settings.xml File') {
                steps {
                    configFileProvider([configFile(fileId: "${env.SETTINGS_CONFIG_FILE_NAME}", targetLocation: "${env.WORKSPACE}")]) {
                    }
                }
            }
            stage('Clean') {
                steps {
                    sh "${mvn} clean"
                }
            }
            stage('Lint') {
                steps {
                    sh "${mvn} lint"
                }
            }
            stage('Build package and execute tests') {
                steps {
                    sh "${mvn} build"
                }
            }
        }

        post {
            always {
                archive "**/target/surefire-reports/*"
                junit '**/target/surefire-reports/*.xml'
                step([$class: 'JacocoPublisher'])
            }
        }
    }

Jenkinsfile

@Library('pipeline-library-demo') _

jenkinsJob.call()

1 Ответ

0 голосов
/ 18 декабря 2018

Все действительные декларативные конвейеры должны быть заключены в блок конвейера, например:

pipeline {
  /* insert Declarative Pipeline here */
  /* import libraries and call functions */
}
...