Скрипт Jenkins Pipeline if-else не дает ожидаемого результата - PullRequest
0 голосов
/ 12 февраля 2019

Я прихожу сюда годами и обычно нахожу ответ, который ищу, но на этот раз у меня довольно специфический вопрос.

Я строю конвейер, который проходит через набор шагов в одном конвейере с 3-х уровневым путем к prod, используя выбор, пару строк и параметр withCredentials.Который работает нормально, до тех пор, пока мой продукт не развернется, где он не пройдет тест «если еще».

У меня есть (секретный текст) учетные данные jenkins с базовым паролем, которые я пытаюсь сравнить со строкой, введенной при запуске сборки.Я проверил заклинание с базовым использованием, и оно работает как положено.НО, когда я добавляю это к моему полному конвейеру, это терпит неудачу.

Я думаю, это из-за того, что я не использовал правильный синтаксис с шагами, сценарием, узлом или порядком ...?Это новое пространство для меня, и я надеюсь, что тот, кто провел больше времени в этом кодовом пространстве, увидит мою ошибку.Спасибо!Заранее!

Сбои:

...
      stage('Deploy_PROD') {
          when {
            expression { params.DEPLOY_TO == 'Deploy_PROD'}
          }
          steps{
                withCredentials([string(credentialsId: '${creds}', variable: 'SECRET')]) {
                script {
                    if  ('${password}' == '$SECRET') {
                        sh 'echo yes'
                    }  else {
                        sh 'echo no'
                }
            }
        }
      }
    }

Работы:

stage('example')
        node {
            withCredentials([string(credentialsId: '${creds}', variable: 'SECRET')]) {
                if  ('${password}' == '$SECRET') { 
                    sh 'echo "test"'
                }  else {
                    sh 'echo ${password}'
                }
            }
        }

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

В итоге я использовал опцию withCredentials с нашим сервером AD, которая позволяла лучше контролировать доступ пользователей к развертыванию в контролируемых средах.спасибо за помощь.

0 голосов
/ 20 февраля 2019

Решение будет

if  (password == SECRET) { 

Также рекомендуется читать - В чем разница строк в одинарных или двойных кавычках в groovy?

...