是否可以在groovy函数上设置环境变量

2024-03-02

我知道我可以在一个阶段有一个关于詹金斯管道(声明性)的环境部分。 像这样:

stage('Name') {
    environment {
        NAME = value
    }   
    steps {
        script {
            Do something using these env vars
        }
    }
} 

我想编写一个常规函数,定义一些环境变量,运行一些东西,并从几个管道中调用它。 就像是:

def function () {
    environment {
        NAME = value
    }
    sh "do something using these env vars"
}

有可能吗?

(我知道我可以写sh "ENV=value; some CMD"但我的变量很少,而且可读性较差)。


是的,你可以这样做。 Jenkins Pipeline 将其环境变量存储在名为的映射中ENV。因此,您可以向此映射添加其他键值对以获取其他环境变量。这可以通过 Groovy 语法完成:

// syntax option one
env.key = value
// syntax option two
env['key'] = value

对于您的示例,这看起来像:

def function () {
  env.NAME = value
  sh "do something using these env vars"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在groovy函数上设置环境变量 的相关文章

  • 詹金斯管道中的主动选择反应参考参数

    我在 dsl 作业中使用 Active Choices Reactive Reference Parameter 插件 这里是代码 parameters activeChoiceParam choice1 description selec
  • 从另一个 Jenkins 管道构建一个 Jenkins 管道时覆盖默认参数

    目标 当我从另一个 Jenkins 脚本构建时 用 false 覆盖 Jenkins 布尔参数默认值 true 我已经检查了其他 StackOverflow 项目中建议的可能答案 似乎没有什么匹配的 然而 他们确实向我展示了如何在从另一个
  • Jenkinsfile - 匹配多个标签的代理

    在我的声明性管道中 我需要选择一个匹配 2 个标签的节点 我尝试过这样的事情 agent label label1 label2 但我收到一个错误there are no nodes 我有一个有 2 个标签的节点label1 and lab
  • 如何在作业开始前清理 Jenkins 管道中的工作区

    我需要在构建开始之前清理工作区 我尝试使用cleanDir 分阶段进行 但在声明性管道中 检查首先发生 并且当阶段与cleadDir运行时 签出的代码也会被清除 这是不希望的 在声明式管道中签出之前 我们如何清除工作区 实际上 我必须根据管
  • 在詹金斯管道的多个步骤中定义和访问变量

    我是从这个帖子来到这里的在 Jenkins Pipeline 的 shell 脚本部分定义变量 https stackoverflow com questions 51407976 defining a variable in shell
  • Jenkinsfile:在 Docker 容器中运行 sh 步骤时权限被拒绝

    我在运行简单的程序时遇到问题Jenkinsfile e g pipeline agent label ssh slave stages stage Shell Test steps sh echo Hello World master 上的
  • 从另一个 Jenkinsfile 调用远程 jenkins 文件

    我正在我的组织中设计 Jenkins CICD 管道 我有以下问题 我来自一个 DevOps 团队 负责控制多个开发团队的 Jenkins 管道 我基本上想编写一个具有多个阶段的 Jenkins 文件 可以由多个团队运行 据我所知 这个 J
  • 获取 Jenkins 多分支管道中的分支列表

    Jenkins 多分支管道项目的 Blue Ocean 界面显示了自动创建的多个分支 是否有一种编程方式可以从要添加到 Jenkinsfile 的代码中列出管道中的分支 此问题询问位于 Jenkins 应用程序对象模型内的 Jenkins
  • 如何为 SonarQube 扫描配置 Jenkins 管道

    我正在尝试为我的项目配置詹金斯管道 但这里缺少一些东西 如果有人可以指出我做错了什么 下面是管道脚本 node stage SonarQube analysis requires SonarQube Scanner 2 8 def scan
  • Jenkins Pipeline - 如何使用“工具”选项来指定自定义工具?

    我通过自定义工具插件在 Jenkins 中定义了一个自定义工具 如果我创建一个自由式项目Install custom tools选项在执行期间正确找到并使用该工具 Salesforce DX 但是 我找不到通过管道文件执行相同操作的方法 我
  • 在同一 Jenkins 项目的后期重用工件

    我有一个 Jenkins 管道 其构建步骤有一个archiveArtifacts命令 构建步骤之后是单元测试 集成测试和部署 在部署步骤中 我想使用其中一个工件 我以为我可以在构建步骤生成它的同一个地方找到它 但显然archiveArtif
  • 使用 Jenkins 作业将 Helm 图表部署到 Kubernetes

    我想创建一个 Jenkins 作业 将 Helm Chart 部署到 Kubernetes 集群中 Helm 图表存储在 Bitbucket 存储库中 pipeline agent any stages stage Download Hel
  • Jenkins 管道中的导出命令

    如何在 Jenkins 管道中添加 导出 unix 命令 我里面有一个詹金斯 舞台 和 步骤 导出命令的语法是什么 我需要使用导出命令设置环境变量 PATH 您可以更新 PATH像这样 pipeline agent label docker
  • 在多分支管道中授予复制 artIfact 权限

    我有以下设置 通过配置的 Jenkins 多分支管道作业Jenkinsfile 成功签出和构建后 工件将被存档 并触发下游作业来部署生成的工件 为了让第二个工作能够通过 class CopyArtifact 步骤 它需要复制权限 所以问题是
  • 您可以使用 Jenkins Pipeline 解析 TAP 格式吗?

    我正在尝试解析 BATS 脚本的输出 https github com gaia adm docker bench test https github com gaia adm docker bench test 输出为 TAP 格式 我稍
  • Jenkins 多分支管道 - 在分支中配置属性?

    我们已经使用 Jenkins 多分支管道插件成功设置了构建管道 该插件在大多数情况下都运行良好 但是我们遇到了一个困扰我们的问题 Jenkinsfile包含一组属性 这些属性也显示在 UI 中 但如何为各个分支设置默认值 这就是我们的属性定
  • 在 Jenkins 声明式管道中对后置条件进行分组

    有没有办法在 Jenkins 声明式管道中对后置条件进行分组 例如 我想对状态做同样的事情aborted failure and success 有没有比以下更短的方法 post aborted sendNotification curre
  • 使用 jenkins pipeline 插件实现动态并行构建的想法

    我需要并行运行一组构建任务 构建的任务是动态的 可能会发生变化 我需要一些帮助来实现下面的细节 构建的任务详细信息将在 xml 中动态生成 其中包含哪些任务必须并行 串行执行的信息 example 说有一个版本A 其中有以下任务和执行顺序
  • 从 Jenkinsfile 设置管道名称和描述

    我正在尝试将 jenkins 管道的 poc 作为代码 我正在使用 Github 组织文件夹插件来扫描 Github 组织并为每个分支创建作业 有没有办法显式定义从 Jenkinsfile 获取的管道作业的名称 我还想添加一些职位描述 你需
  • 如何在声明性 Jenkins 管道的阶段之间传递变量?

    如何在声明性管道的阶段之间传递变量 在脚本化管道中 我收集的过程是写入临时文件 然后将该文件读入变量 如何在声明式管道中执行此操作 例如 我想根据 shell 操作创建的变量触发不同作业的构建 stage stage 1 steps sh

随机推荐

  • 如何将 tex 添加到八度图

    我有一个条形图 我使用 text 在每个条形上方显示分数 例如 text 1 20 300 400 在位置 1 20 处显示字符串 300 400 我现在想美化分数 以便出现 300 over 400 300 400 有没有办法做到这一点
  • 在 Windows 资源管理器中显示文件

    我最喜欢的 IDEWing IDE http www wingware com 有一个用于在资源管理器中显示活动文件的命令 这意味着当您启动该命令时 它会在文件所在的文件夹上打开一个资源管理器窗口 然后选择该文件 问题是 如果窗口已经打开
  • 如何更改 OAuth2RestTemplate 中 MappingJacksonHttpMessageConverter 的 MediaType

    我有一个应用程序 它使用 Spring Source OAuth2 作为客户端从资源服务器检索用户数据并创建本地用户 当 OAuth2ClientContextFilter 尝试检索令牌时 我不断收到错误 org springframewo
  • Gnuplot 绘制两个 CSV 文件的排序合并

    我正在尝试合并和排序两个 CSV 文件 跳过前 8 行 我尝试按我使用的第 36 列对其中一个文件进行排序 awk NR gt 8 print Hight 5x5 csv sort nk36 并合并两个文件 cat Hight 5x5 cs
  • 如何让PHP自动为每个用户创建子域?

    如何创建子域http user mywebsite example 我必须访问吗 htaccess不知何故 实际上是否可以通过纯 PHP 代码创建它 或者我需要使用一些外部脚本服务器端语言 对于那些回答的人 那么 我应该询问我的托管服务是否
  • 转换为值类型“Double”失败,因为具体化值为 null

    CODE double cafeSales db InvoiceLines Where x gt x UserId user UserId x DateCharged gt dateStart x DateCharged lt dateEn
  • 如何在 Java 中抛出一般异常?

    考虑这个简单的程序 该程序有两个文件 File 车辆 java class Vehicle private int speed 0 private int maxSpeed 100 public int getSpeed return sp
  • 将 div 浮动在右下角,但不在页脚内

    我正在尝试实现一个浮动在页面右下角的 转到顶部 按钮 我可以使用以下代码来完成此操作 但我不希望此按钮进入我的页面的页脚 当用户将页面向下滚动到页面底部时 如何阻止它进入页脚并停留在页脚顶部 CSS to top position fixe
  • C++ - 区间树实现

    有人知道有什么好办法吗interval tree在C 中实现 显然 模板驱动的东西更好boost 风格 还有一个问题 如果有人测试过 会做一个基本的测试std vector基于排序的区间树实现可以击败通用区间树 O lg 运算 在实践中 我
  • JQuery:在“内存”而不是 DOM 中构建 HTML

    有没有办法在将 HTML 片段添加到 DOM 之前 预先构建 它 例如 mysnippet append h1 hello h1 mysnippet append h1 world h1 destination append mysnipp
  • JavaScript 函数声明

    下面给出的 JavaScript 代码片段是某种函数声明吗 如果没有 有人可以概述一下它们是什么吗 some func function value some code here and show function value some c
  • 如何复制视图的所有属性?

    我正在创建一个货币汇率应用程序来学习 Android 该应用程序将在列表中列出所有汇率 每个汇率都有这样的布局 本质上
  • 指针到指针到指针[重复]

    这个问题在这里已经有答案了 可能的重复 用于多级指针取消引用 https stackoverflow com questions 758673 uses for multiple levels of pointer dereferences
  • React Native - 如何在地图函数中传递索引

    我有一个地图函数来重复动态地创建组件 假设是这样的 renderBoxes return Array map data gt this myFunction indexOfThisArray 如何传递数组的索引 这样 myFunction
  • 将视图从一种布局动画化到另一种布局

    检查附图以方便解释 翻译动画可以工作 但它会在同一视图内进行动画处理 我希望视图从一种布局飞出到另一种布局 我从这里的另一个答案尝试过这个 相同布局的动画 public class Animations public Animation f
  • 无法在 PHP 中创建不区分大小写的正则表达式

    我无法在 php 中创建有效的正则表达式 我在用着i标记为正则表达式模式 但它不会对我的脚本的结果产生影响 page Test page1 test var dump preg match test i page int 0 var dum
  • 为引用的程序集引发 FileNotFoundException

    我真的很奇怪FileNotFoundException第一次尝试使用我引用的程序集中定义的类时抛出 程序集没有更改 项目文件中的位置与磁盘上的物理路径正确对应 当我将安装程序添加到 Windows 服务和安装项目时 由两个库项目 一个 Wi
  • iOS8后台获取问题

    我在 ios8 之前使用后台获取没有问题 但在 ios8 中 当我在手机上模拟后台获取时 我首先收到一条错误消息 指出我无权播放声音 因此我没有收到任何本地通知 然后打开应用程序后 应用程序崩溃 我收到这个奇怪的错误 由于未捕获的异常而终止
  • fetch.max.wait.ms 与 poll() 方法的参数

    在提出问题之前 我想指出已经有人提出了类似的问题here https stackoverflow com questions 50302119 apache kafka understanding the relationship betw
  • 是否可以在groovy函数上设置环境变量

    我知道我可以在一个阶段有一个关于詹金斯管道 声明性 的环境部分 像这样 stage Name environment NAME value steps script Do something using these env vars 我想编