【发布时间】:2018-09-21 11:43:39
【问题描述】:
我需要一些有关我的 Jenkins 管道的帮助。
我想要做的是按特定顺序触发一些构建以登录平台、部署应用程序并再次注销。
构建以 nodejs 脚本的形式实现,并使用环境变量存储数据并访问先前构建的数据。
我的问题是,当我尝试从我的 nodejs 脚本中访问环境变量时,我总是收到未定义的。例如:在“LoginToPlatform”构建中,我使用 process.env.username 来接收用户名,但即使我在管道的环境块中设置了环境变量,我也会收到未定义的。
所以我的问题是如何从我的构建(nodejs 脚本)中访问环境变量?
这是构建顺序:
1. 'LoginToPlatform'
Uses process.env.username and process.env.password
Sets process.env.session
2. 'DeployOnPlatform'
Uses process.env.session
3. 'LogoutFromPlatform'
Uses process.env.session
我的 Jenkins 流水线:
pipeline {
agent any
environment {
username = 'abc'
password = 'asdf'
}
stages {
stage ('Login') {
steps {
echo 'Login.'
build job: 'LoginToPlatform'
}
}
stage ('Deployment') {
steps {
echo 'Deployment.'
build job: 'DeployOnPlatform'
}
}
stage ('Logout') {
steps {
echo 'Logout.'
build job: 'LogoutFromPlatform'
}
}
}
}
【问题讨论】:
-
在阅读了有关此主题的更多信息后,我试图实现的目标似乎是不可能的,因为您在 nodejs 脚本中设置的环境变量仅在该进程中可用。如果我错了,请纠正我。
-
是的,你是对的,它将在进程中可用。但正如下面 Alex 所提到的,您可以在脚本中使用
process.env.username获取变量值。
标签: node.js jenkins environment-variables jenkins-pipeline