Как выполнять команды GIT, считывая параметры в конвейере Jenkins - PullRequest
0 голосов
/ 30 января 2019

Я хочу запускать команды GIT, читая их как параметры через конвейерный скрипт, скрипт имеет текстовые поля, и в первом поле я могу читать и клонировать код без каких-либо проблем.

Но во втором тексте мне нужно разделить команду с "=", и первая часть даст имя папки, и должна войти в папку (cd), и должна будет выполнить вторую часть команды.

Я могу войти в папку, но не могу выполнить команду

, получая приведенную ниже ошибку

workspace/Test_Groovy_PL@tmp/durable-35d68464/script.sh: line 16: git pull && git fetch --tags && git checkout -b abc rele-1: command not found

Вы можете любойодин, пожалуйста, предложите, где мне нужно внести изменения, чтобы я получил тянуть и получить код

pipeline{
    agent any
        parameters{
             text(name: 'GitCheckOutURLs')
             text(name: 'Branches')
             }
        stages{
            stage("Clone and Checkout"){
                steps{
                    deleteDir()     
                    sh '''
                        urls=$GitCheckOutURLs
                        IFS=$'\n' GitCheckOutURLs1=($urls)
                        for urls1 in "${GitCheckOutURLs1[@]}"
                        do
                            git clone $urls1
                        done
                    '''
                }
            }
            stage("Clone and Checkout1"){
                steps{
                    sh '''
                        CheckoutBranches=$Branches
                        IFS=$'\n' CheckOutURLs1=(${CheckoutBranches//$'\n'/ })
                        IFS=$'\n' CheckOutURLs1=($CheckoutBranches)
                        for checkout1 in "${CheckOutURLs1[@]}"
                        do
                            IFS=$'\n' checkout2=(${checkout1//$'\n'/ })
                            IFS=$'=' checkout2=($checkout1)
                            cd $WORKSPACE/${checkout2[0]}
                            ${checkout2[1]}
                        done    
                    '''
                }

    Parameters: 

    GitCheckOutURLs:
    ssh://git@......./dt.git
    ssh://git@......./vss.git

    Branches:
    dt=git pull && git fetch --tags && git checkout -b abc rele-1
    vss=git pull && git fetch --tags && git checkout -b xyz rele-2

Если я заменим $ {checkout2 [1]} на git pull .. затемскрипт работает нормально, но не может выполнить ту же команду с переменной.

...