簡體   English   中英

從 Node.js 訪問 Jenkins 憑證環境變量

[英]Access Jenkins Credentials Environment Variables from Node.js

我已經使用 Jenkins 的 Credentials 插件設置了一些憑證環境變量。 我在我的 Jenkinsfile 中使用它們,如下所示:

pipeline {
  agent any
  environment {
      
      DEV_GOOGLE_CLIENT_ID          = credentials('DEV_GOOGLE_CLIENT_ID')
      DEV_GOOGLE_CLIENT_SECRET      = credentials('DEV_GOOGLE_CLIENT_SECRET')
     
  }
stages {
stage('Install dependencies') {
  steps {
      dir("./codes") {
            sh 'npm install'
        }
  }
}
stage('Stop previous forever process') {
  steps {
    dir("./codes") {
       sh 'forever stop dev || ls'
    }
  }
}
stage('Clean forever logs') {
    steps {
        dir("./codes") {
            sh 'forever cleanlogs'
        }
    }
}
stage('Test ') {
    steps {
        dir("./codes") {
            sh 'npm run test'
        }
     }
   }
 }
}

在我的 Node.js 代碼中,我試圖通過編寫 process.env.DEV_GOOGLE_CLIENT_SECRET 來訪問這些 env 變量,但這不起作用我正在不確定......謝謝

您使用了哪種類型的憑據: secret textusername and password

使用username and password您可以像這樣分別獲取用戶名和密碼

pipeline {
  agent any
  environment {
      DEV_GOOGLE_CLIENT = credentials('DEV_GOOGLE_CLIENT')
  }
stages {
stage('Get username and password') {
  steps {
    echo "username is $DEV_GOOGLE_CLIENT_USR"
    echo "password is $DEV_GOOGLE_CLIENT_PSW"
  }
}
}

我不知道如何在 node.js 中調用 $DEV_GOOGLE_CLIENT_USR 和 $DEV_GOOGLE_CLIENT_PSW,抱歉。

您按以下順序傳遞憑據: Jenkins credentials > pipeline environment variable > node.js command line parameter

確保首先創建一個 Jenkins 憑據作為秘密文本。

pipeline {
  agent any
  environment {
      JENKINS_SECRET_TEXT=credentials('JENKINS_SECRET_TEXT')
  }
  stages {
    stage('Pass secret as command line parameter') {
      steps {
        sh 'SECRET_ENV_VAR="$JENKINS_SECRET_TEXT" node app.js'
      }
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM