unix - 在 Jenkinsfile 中的 Shell 脚本中访问 Jenkinsfiles 中定义的变量
问题描述
我在 Jenkinsfile 的某个阶段定义了一个 shell 脚本。如何使用 shell 脚本访问我在 Jenkinsfile 中定义的变量?
在下面的场景中,我将 shell 变量的值写入文件并读入一个 groovy 变量。有没有办法将数据从 shell 传递到 groovy 而无需将其写入文件系统?
unstash 'sources'
sh'''
source venv/bin/activate
export AWS_ROLE_ARN=arn:aws:iam::<accountid>:role/<role name>
layer_arn="$(awssume aws lambda list-layer-versions --layer-name dependencies --region us-east-1 --query \"LayerVersions[0].LayerVersionArn\" | tr -d '\"')"
echo $layer_arn > layer_arn
'''
layer_arn = readFile('layer_arn').trim()
解决方案
- 你可以shell命令行,提供变量值。
sh "some stuff $my_var"
- 您可以定义环境变量并在您的外壳中使用它
withEnv(["MY_VAR=${my_var}") {
sh 'some stuff'
}
问候
推荐阅读
- parsing - 使用 awk 和 grep 获取挂载点
- sql - 如何根据分区 - sql分配支出金额?
- java - 如何通过结构中的位置获取 BlockEntity?
- javascript - 使用 history.push(/url) onlick 后 /url 页面中的 Javascript 函数不起作用
- python - 如何在 matplotlib 聊天中制作二级标签?
- html - 内的 CSS标签
- algorithm - 对连接线列表进行排序的最佳方法
- html - 如何配置 stylelint 禁止所有 HTML 标签
- python-3.x - 非常慢的 numpy OR 操作
- symfony - 使用 Symfony 增加数据库会话持续时间