jenkins - 有没有办法将变量从阶段局部变量设置为 Jenkins 全局变量?
问题描述
有没有办法访问詹金斯全局管道中的阶段局部变量,我正在尝试使用块中的var1
值。Example stage
post always
// Declarative //
pipeline {
agent any
stages {
stage('Example') {
steps {
def var1 = sh 'ssh yourname@yourmachine 'grep uploadRate= /root/yourscript' '
}
}
}
post {
always {
echo 'Reading a Var1 Value' + var1
}
}
}
错误:
Error when executing always post condition:
groovy.lang.MissingPropertyException: No such property: var1 for class: WorkflowScript
解决方案
您不能直接调用在后期操作的构建步骤中分配的变量。作为一种解决方案,您可以将“示例”阶段结果传递给文件,然后通过使用环境注入插件,您可以访问后操作中的值。
安装插件后,在作业配置中设置文件名。 插件设置
pipeline {
agent any
stages {
stage('Example') {
steps{
script {
sh 'date > output.txt'
}
}
}
}
post {
always {
script {
curDate = readFile 'outFile.txt'
echo "The current date is ${curDate}"
}
}
}
}
推荐阅读
- django - Django - 在查询中加入 3 个模型
- node.js - 必须使用 import 加载 Babel 模块中的 ES 模块 NODEJS 错误
- amazon-web-services - AWS API 网关 + Lamda(非异步)+ fetch(异步)
- javascript - 当我不希望它水平滚动时如何修复我的表格宽度
- javascript - 过滤时找不到数据时如何显示错误消息
- c# - 如何使用 RaspberryPi 在 asp.net mvc 中编写 windows 窗体或 web 应用程序?
- python - 使用 PyRFC 提取 RAW 数据类型列的问题
- vb.net - 我无法通过 Visual Basic 将新行保存到 Microsoft Access 数据库中
- ios - 如何使用核心数据将对象传递给 SwiftUI 中的其他视图
- python - 使用 zip 函数返回一个空元组