Jenkins-pipeline 从 groovy 中的属性文件中提取并设置变量

2023-11-30

首先,我将管道完全编写为 groovy,以便签入 git。请不要提供任何gui必要的解决方案。我的问题陈述是:

从文件中提取变量并将其设置为等于 groovy 对象。

我尝试过的

def SERVICE_MAJOR_VERSION
node {
    runGitClone(GIT_REPO_URL, GIT_HASH)
    def conf = readFile("gradle.properties")
    echo conf
    //THE BELOW COMMENT DOESN'T WORK
    //SERVICE_MAJOR_VERSION = loadEnvFromFile("SERVICE_VERSION_MAJOR", "gradle.properties", true, SERVICE_VERSION_MAJOR)
}    

def runGitClone(git_repo_url, git_hash) {
    checkout changelog: false, poll: false, scm: [$class: 'GitSCM', branches: [[name: git_hash]], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'WipeWorkspace']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '85572032-4284-4095-9eec-4df70ddfdb68', url: git_repo_url]]]
}

def loadEnvFromFile(string_name, file_path, should_print_load) {
    def par1 = null
    def content = readFile file_path
    def matcher = content =~ /${string_name}\=(.+)/
    if (matcher) {
        par1 = string_name + "='" + matcher[0][1] + "'"
        new GroovyShell(this.binding).evaluate(par1)
            if (should_print_load) {
            println par1
        }
    }
    return par1
}

我尝试过其他建议但无济于事。尤其是下面这两个。

  • 使用 Groovy 从属性文件中获取值
  • 将字符串解析为属性

如果您有一个从文件中提取变量并将其设置为等于常规对象的工作示例,那么它将解决我的问题。


SOLVED:

def content = readFile 'gradle.properties'

Properties properties = new Properties()
InputStream is = new ByteArrayInputStream(content.getBytes());
properties.load(is)

def runtimeString = 'SERVICE_VERSION_MINOR'
echo properties."$runtimeString"
SERVICE_VERSION_MINOR = properties."$runtimeString"
echo SERVICE_VERSION_MINOR
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins-pipeline 从 groovy 中的属性文件中提取并设置变量 的相关文章

  • Jenkins - 配置 Jenkins 以轮询 SCM 中的更改

    我正在与 jenkins 合作 当 svn 存储库发生更改时 我想运行 Maven 目标 我附上了一张我当前配置的图片 我知道每 5 分钟检查一次存储库是疯狂的 我想只有当有新的变化时才运行它 但我找不到方法 无论如何 它不会检查存储库 我
  • Groovy:为什么我需要双转义方括号?

    为什么这不起作用 hello world split 这会 hello world split 这实际上是不同上下文中的两次转义 因为参数是表示为字符串的正则表达式 The 必须进行转义 否则它将在正则表达式中具有特殊含义 正则表达式的转义
  • 将 cron 作业配置为在 Jenkins 上每 15 分钟运行一次

    如何在 Jenkins 上每 15 分钟运行一次 cron 作业 这是我尝试过的 在 Jenkins 上 我使用以下 cron 语法设置了每 15 分钟运行一次的作业 14 但该作业每小时执行一次 而不是 15 分钟 我收到有关 cron
  • 批准后使用 jenkinsfile 构建促销

    仅当更改管理使用 servicenow 更改票证或通过手动批准批准它时 我才需要使用 jenkins 文件将我的构建升级到生产 我想要类似的东西 产品构建只有在经理批准后才能手动触发 他 她应该收到带有批准 拒绝链接的批准邮件 或者 如果与
  • 当转换为布尔值时,groovy 是否隐式调用 Matcher 上的 find ?

    当我这样做的时候 println line with 1 digit d 它返回 java util regex Matcher pattern d region 0 17 lastmatch 但是当我将它转换为布尔值时 它返回true o
  • 在 Groovy 中分配对象属性的简写方法?

    我使用此约定创建 Groovy 对象 Item item1 new Item name foo weight 150 是否有操作属性对象的速记约定 像这样的东西 item1 name hello weight 175 this does n
  • 在 Grails 中应用 Groovy 扩展会产生 String#toBoolean() 的 MissingMethodException

    背景 Groovy 有以下特点向现有类添加方法 http docs codehaus org display GROOVY Creating an extension module 我发现some https github com timy
  • 从 Jenkins Pipeline 捕获 shell 脚本输出

    我正在尝试提取 git 分支并在 Jenkinsfile 中提交信息 如下所示 def commit sh returnStdout true script git rev parse HEAD trim def branch sh ret
  • Jenkins 中的导出/导入作业

    两个不同的 Jenkins 之间可以交换工作吗 我正在寻找一种导出 导入作业的方法 可能使用 jenkins 命令行是另一种选择 请参阅https wiki jenkins ci org display JENKINS Jenkins CL
  • Jenkins 管道中的节点、阶段和步骤之间有什么区别?

    我试图了解如何构建 Jenkins 2 7 pipeline Groovy 脚本 我已经读过管道教程 https github com jenkinsci pipeline plugin blob master TUTORIAL md 但觉
  • 如何在 Eclipse RCP 项目中使用 groovy?

    我有一个 Eclipse RCP 项目 我想在其中使用 Groovy 我尝试做的是 1 添加 Groovy Nature 2 在 src 文件夹下创建Groovy文件3 从 View 的createPartControl 方法调用groov
  • Jenkins:致命:无法初始化类 hudson.util.ProcessTree$UnixReflection

    FATAL Could not initialize class hudson util ProcessTree UnixReflection java lang NoClassDefFoundError Could not initial
  • 整合 Jenkins 电子邮件通知

    我有一个 Jenkins 项目 由 3 个简单的自由式作业组成 每个作业都有自己的构建从站 每个作业都与一个单独的平台相关联 linux mac 或 windows 当开发人员提交代码时 Jenkins 很快就会轮询存储库 在每个构建从属设
  • 致命:Jenkins IIS ID 无效

    我正在尝试设置 Jenkins 从 bitbucket 中提取并构建一个项目 我在 IIS 8 5 Server 2012 r2 上使用它 我已经设置了 Git 和 Bitbucket 插件 我已经建立了一个包含以下内容的项目 Branch
  • Jenkins 上的 XCode 项目陷入“codesign”

    我使用 Jenkins 与 XCode 插件进行持续集成 有一个 Jenkins 坚持的项目 usr bin codesign force sign 接下来是旋转器 永远旋转 我以前从未见过这个 以前有人见过这个吗 是配置文件问题还是证书问
  • 如何避免开发人员将凭证推送到 bitbucket?

    我们有一个应用程序 它使用 JSON 文件来定义数据库和其他 API 的连接字符串和凭据 理想情况下 这些凭证作为变量添加到 bitbucket 存储库中 并在 Jenkins 的构建期间进行替换 开发商在当地与他们合作时更换了他们 我们需
  • 在 Eclipse 中编译 Groovy 文件

    我的 java web 项目包含一些 Groovy 代码 但 Eclipse 无法识别 Groovy 文件 也无法从中生成任何类 我已经在 Eclipse 中安装了 Groovy 插件 在我的 Windows 机器中安装 Groovy 并设
  • 与字符串比较在 Jenkins 管道中不起作用

    知道为什么IF ELSE下面的作品 def checkPrValidity wordCountStr sh returnStdout true script git diff ignore space at eol target branc
  • TeamCity 将功能分支推送到主分支

    有没有办法将成功构建的功能分支推送到另一个分支 我想要这样的东西 Git 存储库 Gitorious GitHub 等 分支机构 master 当前项目的代码 质量保证 代码等待 QA 的分支 功能分支 许多远程分支 开发人员可以在其中开发
  • 自动生成/删除詹金斯工作

    我正在寻找一种自动创建一组詹金斯作业的方法 通常在创建新的 git 分支之后 我已经为maven尝试过这个插件 http evgeny goldin com wiki Maven jenkins plugin http evgeny gol

随机推荐

  • 使用 AutoIT 登录 Chrome 身份验证窗口

    我尝试通过以下代码登录到 Firefox 身份验证窗口 WinWaitActive Authentication Required 120 If WinExists Authentication Required Then Send use
  • 如何找到向量中的所有最小元素

    在Matlab中 通过函数min 即使可以有多个相等的最小元素 我也只能得到一个向量的一个最小元素 我想知道如何获取向量中所有最小元素的索引 例如 v 1 1 我想获得索引 1 和 2 它们都索引最小的元素 1 感谢致敬 您可以使用find
  • fmt.Scanln 预期换行错误

    我正在尝试学习 Go 但坚持了这一点 http ideone com hbCamr or http ideone com OvRw7t package main import fmt func main var i int var f fl
  • Github 表示有效的现有工作“正在等待状态报告”

    我有一个 PR 我希望在合并到 master 之前完成某些检查 这是工作https github com hhimanshu typescript serverless api vercel actions runs 763599870 现
  • 美元符号在 Swift / SwiftUI 中起什么作用?

    Apple 提供的有关 SwiftUI 的教程使用美元符号绑定数据 但我无法在 SwiftUI 中找到有关此数据绑定的更多信息 Toggle isOn showFavoritesOnly 您可以使用 前缀来访问对状态变量或其属性之一的绑定
  • 在通过 setTimeout 或 Promise 阻止代码之前更新 DOM

    我知道 当存在 CPU 密集型代码时 任何先前的 DOM 更新都不会发生 例如 function blockFor dur var now new Date getTime while new Date getTime lt now dur
  • 如何使用serviceWorker缓存ajax响应

    我在index html中使用ajax调用服务器数据 它正在完美地获取这些数据 现在 我正在与服务人员一起工作 我可以缓存所有静态资源 图像 js css 并在 Chrome 开发工具的应用程序选项卡的缓存存储中检查这些缓存的资源 我可以在
  • 使用信用卡付款的 Paypal Express Checkout 订阅

    问题 是否可以通过 Paypal api Express Checkout 设置订阅 以便您可以通过信用卡和 Paypal 登录进行支付 Paypal 登录没问题 但目前无法使用信用卡 我已设置 NVP SOLUTIONTYPE Sole
  • 参数数量无效:没有绑定参数

    我有一个使用 php 和 mysql 的静态聊天应用程序 下面是在聊天框中显示消息的代码 sql SELECT id msg time msg from msg to from msg WHERE msg from SESSION user
  • 使用 GSON 反序列化嵌套 JSON 字符串

    全部 我有以下内容JSON输出 字符串 来自 JIRA API 的响应 expand names schema startAt 0 maxResults 50 total 1 issues expand operations version
  • Java:找到大写字母时分割字符串

    我认为这是一个简单的问题 但我无法找到一个简单的解决方案 比如说 少于 10 行代码 我有一个String例如 thisIsMyString 我需要将其转换为String this Is My String 请注意第一个字母不是大写 您可以
  • Visual Studio代码:在输入代码片段时替换字符大小写

    我正在尝试为 Visual Studio Code 和 TypeScript 编写代码片段 到目前为止 我成功地镜像了这样的输入单词 import 1 Name Component from 1 name component 当我在第 1
  • 集群环境下如何使用redis扫描?

    我正在使用 spring redisTemplate 和 redis 扫描 它可以在单节点的情况下查找 但在集群环境下就不行了 我无法获取数据 有没有办法在集群环境下获取扫描数据 这是我的 spring redisTemplate 代码 S
  • 将一个函数作为参数传递给另一个函数

    我看到一个函数像这样传递 sigma 3 e 2 svmTrain X y gaussianKernel X y sigma 这样的函数传递是怎么回事 有人能解释一下吗 语法 X y gaussianKernel X y sigma 创建一
  • Visual Studio:通过电源控制台添加项目文件失败

    我的任务是在一个解决方案中添加 384 个现有项目 以便用项目依赖项替换二进制文件依赖项并使用 msbuild 进行构建 为了实现这一目标 我尝试使用 Visual Studio API 来自动将项目添加到解决方案中 我实际上是 Windo
  • 如何从画布中添加和删除(多个)图像?

    我是画布 HTML5 新手 我必须在画布上设计一个绘画应用程序 有一个功能 例如在画布上动态添加所选图像 通过鼠标移动 以及删除和拖动添加的图像的功能 与文本添加相同 现在我的问题是我们如何从画布中删除图像 注意 添加到画布中的图像没有固定
  • 如何在TYPO3 CMS后端重命名副标题

    如何为作者重命名 TYPO3 CMS 后端字段 即提到的 csc styled content 内容元素字段 一般来说 覆盖标签名称可以通过后端的 Page TSconfig 来完成 下面的例子修改了标签subheader field TC
  • 你调用的对象是空的

    我有一个单元格类 public class Cell public enum cellState WATER SCAN SHIPUNIT SHOT HIT public Cell currentCell cellState WATER Me
  • 静态变量的动态初始化阶段

    该标准特别指出 静态持续时间变量 命名空间范围和类静态成员 的动态初始化不必在执行 main 之前发生 命名空间范围的对象的动态初始化 8 5 9 4 12 1 12 6 1 是否在 main 的第一个语句之前完成 是由实现定义的 IS 3
  • Jenkins-pipeline 从 groovy 中的属性文件中提取并设置变量

    首先 我将管道完全编写为 groovy 以便签入 git 请不要提供任何gui必要的解决方案 我的问题陈述是 从文件中提取变量并将其设置为等于 groovy 对象 我尝试过的 def SERVICE MAJOR VERSION node r