如何通过在Jenkins管道中读取参数来执行GIT命令

时间:2019-01-30 08:48:07

标签: git sh jenkins-pipeline

我想通过管道脚本作为参数读取来运行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 .. ,则脚本可以正常工作,但无法使用变量执行相同的命令。

0 个答案:

没有答案