Jenkins:如何运行Shell脚本

时间:2019-03-12 08:58:10

标签: jenkins jenkins-pipeline

Jenkins无法运行Shell脚本。我已经在kubernetes集群上安装了Jenkins。 这是构建控制台输出的一部分:

    Start building Frontend and Backend Docker images
[Pipeline] }
[Pipeline] container
[Pipeline] {
[Pipeline] container
[Pipeline] {
[Pipeline] echo
Building Bmf Frontend Image
[Pipeline] sh
[Pipeline] echo
Buildinging Bmf Backend Images
[Pipeline] sh
+ chmod +x build.sh
[Pipeline] // stage
[Pipeline] }
[Pipeline] sh
+ chmod +x build.sh
[Pipeline] sh
+ ./build.sh --build_bmf_frontend
build.sh - Script for building the  Web Application, Docker image and Helm chart
Usage: ./build.sh <options>
--build_bmf_frontend    : [optional] Build Bmf Frontend image
--build_bmf_backend     : [optional] Build Bmf Backend image
--push_bmf_frontend     : [optional] Push Bmf Frontend image
--push_bmf_backend      : [optional] Push Bmf Backend image
--delete_frontend       : [optional] Delete Bmf Frontend image
--delete_backend        : [optional] Delete Bmf Backend image
--deploy_stage          : [optional] Deploy to Stage Server
--deploy_production     : [optional] Deploy to Production Server
--registry reg          : [optional] A custom docker registry
--docker_usr user       : [optional] Docker registry username
--docker_psw pass       : [optional] Docker registry password
--tag tag               : [optional] A custom app version
-h | --help             : Show this usage
[Pipeline] }
[Pipeline] // container
[Pipeline] }
[Pipeline] // stage
[Pipeline] }

作业在通过模板Kubernetes Pod模板配置的kubernetes worker上执行。

这是我的Jenkinsfile命令:

stage('Build BMF Frontend') {
          steps {
            container('jnlp') {
            echo 'Building Bmf Frontend Image'
            sh "chmod +x build.sh"
            sh "./build.sh --build_bmf_frontend"
          }
          }
        }

下面是我的Jenkins工作区的屏幕截图;

This is my workspace

3 个答案:

答案 0 :(得分:0)

您的管道已正确执行。

返回的输出表明问题出在您的脚本中。

即使Jenkins成功执行,由于代码中的问题,您也无法使它按预期工作。

您可能要检查build.sh脚本,可能是它分析输入选项的部分。

答案 1 :(得分:0)

使用摘要生成器时,所有的sh命令都用单引号引起来。也许您应该改用它?

https://jenkins.io/doc/book/pipeline/getting-started/#snippet-generator

答案 2 :(得分:0)

我正在使用 sh 执行它,该语法的语法不太广泛;)