Дженкинс-конвейер создать переменную на основе других - PullRequest
0 голосов
/ 07 февраля 2020
stage ('Define SFCC vars'){
   steps{
    script{
    sh 'printenv'
    sh label: '', script: '''SFCC_COMMIT=$(find . -maxdepth 1  -type f -name '[0-9]*' |sed \'s!.*_!!\'| sed \'s!.zip!!\')'''
    sh label: '', script: """CODE_DIR=sfra${env.GIT_BRANCH//origin\//}_PR${env.BITBUCKET_PULL_REQUEST_ID}_${env.GIT_COMMIT:0:7}_sfcc_${env.SFCC_COMMIT:0:7}"""
        }//end script
       }//end steps
      }//end stage
  stage('Combine Cartridges'){
    steps{
    sh 'ls -lt'
    sh 'mkdir ${env.CODE_DIR}'
    sh 'unzip -q "*.zip" -d ${env.CODE_DIR}'
    sh 'ls -lt ${env.CODE_DIR}'
    sh 'zip -r ${env.CODE_DIR}.zip ${env.CODE_DIR}'
    sh 'ls -lt'
    sh label: '', script: '''cat > .env <<- EOM
            INSTANCEURL= $TEST_SERVER
            CLIENTID=$client
            CLIENTSECRET=$secret
            EOM
            '''
    }//end Combine steps  
  }//end Combine stage
  stage('Deploy to TEST_SERVER'){
    steps{
    sh label: '', script: """CODE_VERSION=\$(find . -iname $CODE_DIR.zip |sed 's!.*/!!'| sed 's!.zip!!')"""

продолжает выдавать мне ошибку X, говорящую "ожидающий"} ', найден CODE_VERSION.

Я пробовал одинарные кавычки, двойные, экранирование $ (затем он хочет изменить нижестоящие секции)

1 Ответ

0 голосов
/ 10 февраля 2020

В последней команде sh вам необходимо заключить CODE_DIR в фигурные скобки, { и }, чтобы явно разделить переменную, которую вы хотите заменить.

В противном случае исполнитель не знает, переменная, которую вы хотите заменить, называется CODE_DIR или CODE_DIR.zip

Попробуйте эту строку
sh label: '', script: """CODE_VERSION=\$(find . -iname ${CODE_DIR}.zip |sed 's!.*/!!'| sed 's!.zip!!')"""

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