Как получить переменную учетных данных Jenkins на всех этапах моего декларативного конвейера Jenkins - PullRequest
0 голосов
/ 21 сентября 2019

Как мне получить переменную учетных данных Jenkins, то есть «mysqlpassword», доступную для всех этапов моего декларативного конвейера Jenkins?

Следующий фрагмент кода работает нормально и печатает мои учетные данные.

node {
  stage('Getting Database Credentials') {
    withCredentials([usernamePassword(credentialsId: 'mysql_creds', passwordVariable: 'mysqlpassword', usernameVariable: 'mysqlusername')]) 
    {
        creds = "\nUsername: ${mysqlusername}\nPassword: ${mysqlpassword}\n"
    }
        println creds
  }
}

Как я могу включить приведенный выше код в мой текущий конвейер, чтобы переменные mysqlusername и mysqlpassword были доступны для всех этапов скрипта конвейера, т. Е. Глобально.

Моя схема скрипта конвейера выглядит следующим образом:

pipeline {          //indicate the job is written in Declarative Pipeline

    agent { label 'Prod_Slave' }

    environment {
                     STAGE_2_EXECUTED = "0"
    }

        stages {
            stage ("First Stage")  {
                     steps {
                echo "First called in pipeline"
                                script {
                        echo "Inside script of First stage"
                    }

                } 
          }       // end of first stage

            stage ("Second Stage")  {
                     steps {
                echo "Second stage called in pipeline"
                                script {
                        echo "Inside script of Second stage"
                    }

                } 
          }     // end of second stage

   }      //end of stages
}      // end of pipeline

Я пользуюсь последней версией Jenkins.

Требуются решения.Спасибо.

1 Ответ

0 голосов
/ 21 сентября 2019

Вы можете сделать что-то вроде этого.Здесь вы определяете переменные в environment { } и используете их на всех этапах.

pipeline {
agent any
   environment {
        // More detail: 
        // https://jenkins.io/doc/book/pipeline/jenkinsfile/#usernames-and-passwords
        MYSQL_CRED = credentials('mysql_creds')
   }
stages {
    stage('Run Some Command') {
        steps{
            echo "Running some command"
            sh '<some-command> -u $MYSQL_CRED_USR -p $MYSQL_CRED_PSW'
        }
    }
}

Переменные, определенные в средах, являются глобальными для всех этапов, поэтому могут использоваться во всем jenkinsfile.

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