Дженкинс: как запустить сценарий оболочки

#jenkins #jenkins-pipeline

#дженкинс #дженкинс-конвейер

Вопрос:

Дженкинсу не удалось запустить сценарий оболочки. Я установил Jenkins в свой кластер kubernetes. Вот часть вывода консоли сборки:

     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 worker, подготовленном из шаблона Kubernetes Pod Template.

Вот моя команда 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;

Это мое рабочее пространство

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

1. не могли бы вы поделиться своим build.sh сценарием?

2. Вывод консоли сборки дженкинса показывает 15 строк вывода из сценария оболочки , так что сценарий, очевидно, выполнен. Голосование за закрытие, поскольку вопрос не имеет смысла.

Ответ №1:

При использовании генератора фрагментов все команды sh генерируются в одинарных кавычках. Возможно, вам следует использовать это вместо этого?

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

Ответ №2:

Ваш конвейер выполнен правильно.

Возвращенный вывод предполагает, что проблема связана с вашим сценарием.

Даже если Дженкинс выполнен успешно, вы не заставляете его работать так, как планировалось, из-за проблемы в вашем коде.

Возможно, вы захотите проверить свой build.sh скрипт, возможно, раздел, в котором он анализирует параметры ввода.

Ответ №3:

Я выполняю его с помощью sh, который имеет менее обширный синтаксис 😉