Трубопровод Дженкинса - Как прочитать статус успеха сборки? - PullRequest
0 голосов
/ 10 июля 2019

Ниже приведен вывод после запуска сборки (с успехом):

$ sam build
2019-06-02 15:36:37 Building resource 'SomeFunction'
2019-06-02 15:36:37 Running PythonPipBuilder:ResolveDependencies
2019-06-02 15:36:39 Running PythonPipBuilder:CopySource

Build Succeeded

Built Artifacts  : .aws-sam/build
Built Template   : .aws-sam/build/template.yaml

Commands you can use next
=========================
[*] Invoke Function: sam local invoke
[*] Package: sam package --s3-bucket <yourbucket>

[command] && echo "Yes" подход не помог мне.

Я пытался использовать это в Jenkinsконвейер

def samAppBuildStatus =  sh(script: '[cd sam-app-folder; sam build  | grep 'Succeeded' ] && echo true', returnStatus: true) as Boolean

как однострочная команда скрипта, но не работает


Как получить статус успешной сборки с помощью скрипта bash?для трубопровода Дженкинс

1 Ответ

1 голос
/ 10 июля 2019

Используйте это, чтобы получить статус выхода команды:

def samAppBuildStatus = sh returnStatus: true, script: 'cd sam-app-folder; sam build | grep "Succeeded"'

или это, если вы не хотите видеть stderr в выводе:

def samAppBuildStatus = sh returnStatus: true, script: 'cd sam-app-folder; sam build 2>&1 | grep "Succeeded"'

затем в вашем Jenkinsfile вы можете сделать что-то вроде этого:

if (!samAppBuildStatus){
    echo "build success [$samAppBuildStatus]"
} else {
    echo "build failed [$samAppBuildStatus]"
}

Причина ! в том, что определения true и false между shell и groovy отличаются (0 это true для оболочки).

...