Невозможно найти SBT в Jenkins, пока установлен плагин - PullRequest
0 голосов
/ 25 октября 2019

Я установил плагин sbt для Jenkins в глобальной настройке инструмента . Но Дженкинс говорит, что не может найти команду sbt, когда я запускаю свою сборку

Jenkinsfile

#!/usr/bin/env groovy

pipeline {
    agent any
    stages {
        stage('Build Image') {
            steps {
                echo "Build Image"
                sh 'sbt buildDockerImage'
            }
        }
    }

}

Сообщение об ошибке;

 [Pipeline] }
[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Build Image)
[Pipeline] echo
Build Image
[Pipeline] sh
+ sbt buildDockerImage
/var/jenkins_home/workspace/App-ImageBuild@tmp/durable-1de2b2d2/script.sh: line 1: sbt: command not found
09:01:18.926552 durable_task_monitor.go:63: exit status 127

Кто-нибудь знает почему?

1 Ответ

1 голос
/ 26 октября 2019

Сначала я удалил бы #!/usr/bin/env groovy, поскольку вы используете декларативный конвейер, а не сценарий.

Во-вторых, проблема заключается в том, что Jnekins устанавливает инструмент в своем домашнем каталоге, который не включен впеременная окружения PATH . Таким образом, вы должны указать полный путь к sbt исполняемому файлу:

steps {
    echo "Build Image"
    sh "${tool name: 'mySbt', type: 'org.jvnet.hudson.plugins.SbtPluginBuilder$SbtInstallation'}/bin/sbt  buildDockerImage"
}

заменить 'mySbt' именем, которое вы указали на странице конфигурации Global Tools.

В качестве альтернативного решения вы можете просто добавить sbt dir в PATH env var, добавив следующий блок:

environment {
     SBT_HOME="${tool 'mySbt'}"
     PATH="${env.SBT_HOME}/bin:${env.PATH}"
}

замените 'mySbt' именем, которое вы указали вСтраница конфигурации глобальных инструментов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...