Файл сценария запуска Дженкинса - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть конвейер Jenkins, который запускает файл сценария.

Я протестировал скрипт за пределами Jenkins, и он отлично работает, но когда я пытаюсь запустить его как часть конвейера, я получаю следующую ошибку:

/maint/git-branches.sh: line 2: syntax error: unexpected "("

Сценарий:

#!/bin/bash
branches=()
eval "$(git for-each-ref --shell --format='branches+=(%(refname))' refs/heads/)"
for branch in "${branches[@]}"; do
   echo "${branch##*/}"
done

И мой этап конвейера:

stage ('Fetching Branches') {
          steps {
            script {
              def branchcollection = sh (script: "sh maint/git-branches.sh", returnStdout: true).trim()
              BRANCH = input message: 'Choose branch to pull from', ok: 'Ok', parameters: [choice(name: 'BRANCH', choices: "${branchCollection}", description: '')]
            }
          }
        }

Все скобки ')' совпадают, поэтому нет свободных скобокв любом месте.

1 Ответ

0 голосов
/ 06 сентября 2018

Код конвейера явно выполняется git-branches.sh с sh. В некоторых системах sh не является Bash и не поддерживает специфичные для Bash функции. В этом случае похоже, что sh не поддерживает массивы. Попробуйте изменить код конвейера на ... "bash maint/git-branches.sh"....

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