[英]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 text
或username 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.