Я хочу запускать команды 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 .. затемскрипт работает нормально, но не может выполнить ту же команду с переменной.