首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Jenkinsfile访问when条件中的全局变量

Jenkinsfile是Jenkins中用于定义流水线的一种文件格式,它采用Groovy语言编写。在Jenkinsfile中,可以使用when条件来根据特定的条件执行或跳过某个阶段或步骤。

当需要在when条件中访问全局变量时,可以通过env对象来获取。env对象是Jenkins内置的一个全局变量,用于存储环境变量和全局变量。

以下是一个示例的Jenkinsfile,展示了如何访问when条件中的全局变量:

代码语言:txt
复制
pipeline {
    agent any
    environment {
        MY_GLOBAL_VARIABLE = 'Hello World'
    }
    stages {
        stage('Example') {
            when {
                expression {
                    return env.MY_GLOBAL_VARIABLE == 'Hello World'
                }
            }
            steps {
                // 执行一些步骤
            }
        }
    }
}

在上述示例中,通过environment块定义了一个名为MY_GLOBAL_VARIABLE的全局变量,并将其设置为'Hello World'。在when条件中,使用expression来判断MY_GLOBAL_VARIABLE的值是否等于'Hello World',如果满足条件,则执行该阶段下的步骤。

需要注意的是,当在Jenkinsfile中定义全局变量时,可以使用env.MY_GLOBAL_VARIABLE的方式来访问。在when条件中,可以根据全局变量的值来决定是否执行特定的阶段或步骤。

推荐的腾讯云相关产品:腾讯云CI/CD(持续集成与持续交付)服务。该服务提供了一套完整的持续集成与持续交付解决方案,可与Jenkins等工具无缝集成,帮助开发团队实现高效的软件交付流程。详情请参考腾讯云CI/CD产品介绍:腾讯云CI/CD

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

playbookwhen使用

背景 在使用ansible编写playbook过程,我们发现在安装某服务时,例如部署fastdfs分布式存储时,有的机器需要启动tracker和storage两个服务,有的机器只需要启动一个服务即可...,它们需要配置不同,我们要根据不同机器来做不同判断,来分发不同配置文件,这时就会用到when来做判断了,并且我们还要使用jinja2循环条件控制语句,还要在ansible清单文件设置好变量...become: true 我们在日常部署,这种使用方法能帮我们大大提高playbook执行效率 针对不同主机来做判断,如果满足条件,则执行任务,不满足直接略过 - name: Copy...: fdfs_role == 'tracker' become: true 这里我们自定义了一个变量fdfs_role,该变量是定义在清单文件,如下: [fdfs] 10.0.3.115 10.0.3.116...,when执行判断是当fdfs_role为tracker时,才去执行此任务,简而言之就是满足条件才会执行,这对我们非常有用,例如在部署mysql集群时,我们需要对数据库执行授权操作,当然,授权操作主库和从库都要进行

64930
  • Jenkins流水线即代码之扩展共享库

    Jenkin多分支流水线,允许Jenkinsfile与需要 Jenkins 构建应用程序代码放在一起,然后 Jenkins 从源代码管理系统检出 Jenkinsfile 文件作为流水线项目构建过程一部分并接着执行你流水线...vars 目录定义可从流水线访问全局变量脚本。每个 *.groovy 文件基名应该是一个 Groovy (~ Java) 标识符, 通常是 camelCased。...系统任何流水线都可以使用这些库实现功能。 ? 使用类库 标记为 Load implicitly 共享库允许流水线立即使用任何此库定义类或全局变量。...为了访问其他共享库, Jenkinsfile 需要使用 @Library 注解。 ?...,并定义call方法,通过允许访问全局变量实现相关功能。

    1.8K20

    史诗级整理 Jenkins 流水线详解

    可以定义在 pipeline 作为全局变量,也可以配置在 stage 作为该 stage 环境变量。...该指令支持一个特殊方法 credentials(),该方法可用于在 Jenkins 环境通过标识符访问预定义凭证。...When 指令允许流水线根据给定条件决定是否应该执行该 stage,when 指令必须包含至少 一个条件。...如果 when 包含多个条件,所有的子条件必须都返回 True,stage 才能执行。 When 也可以结合 not、allOf、anyOf 语法达到更灵活条件匹配。...值和给定条件匹配,执行这个 stage,例如:when { tag "release-" }; not:当嵌套条件出现错误时,执行这个 stage,必须包含一个条件,例如:when { not {

    7.8K20

    Python全局变量操作

    今天遇到了Python全局变量相关操作,遇到了问题,所以,在这里将自己遇到问题,做个记录,以长记心!!!...在Python中使用全局变量,其实,个人认为并不是很明智选择;但是自己还是坚信,存在便合理,在于你怎么使用;全局变量降低了模块和函数之间通用性;所以,在以后编程过程,应尽量避免使用全局变量。...全局变量使用: 方法一: 为了便于代码管理,将全局变量统一放到一个模块,然后在使用全局变量时候,导入全局变量模块,通过这种方法来进行使用全局变量; 在一个模块定义全局变量: [python...if __name__ == '__main__':       printGlobal()   print(globalValues.GLOBAL_2)   方法二: 直接在模块定义全局变量...但是在使用全局变量时候,必须在函数中使用global关键字进行标识: [python] view plaincopyprint?

    3.1K20

    多线程访问共享全局变量引发数据混乱

    1.线程共享全局变量 在学习线程相关概念之后,想探究在进程虚拟地址空间当中哪些区域是进程多个线程共享。 探究发现,全局变量在不同线程当中访问全局变量是共享。...(NULL);//退出当前线程 return 0; } 测试结果 可见,全局变量在多个线程是共享。...虽然线程共享全局变量相对于进程通信会给线程通信带来巨大方便,但是探究以下问题时发现不做控制进行访问全局变量也是致命,带来巨大程序bug,并且难以发现,首先请看一下代码: #include<stdio.h...在两个线程,都访问全局变量并且同样进行了一万次++操作,结果应该是20000。...针对我们上边线程访问全局变量时,分配给单个线程执行时间是有限,而且为了模仿交替执行过程,程序还使用了usleep(10)系统调用函数,主动交出CPU控制权。

    1.3K10

    Python全局变量如何理解

    Python是一种面向对象开发语言,在函数中使用全局变量,一般应作全局变量说明,只有在函数内经过说明全局变量才能使用。 首先应该说明是需要尽量避免使用Python全局变量。...不同模块都可以自由访问全局变量,可能会导致全局变量不可预知性。对全局变量,如果程序员甲修改了_a值,这时可能导致程序错误。这种错误是很难发现和更正。...全局变量降低了函数或模块之间通用性,不同函数或模块都要依赖于全局变量。同样,全局变量降低了代码可读性,阅读者可能并不知道调用某个变量是全局变量。...不同函数内部可以定义名字相同变量,但它们不会产生影响。 局部变量作用,为了临时保存数据需要在需要在函数定义变量来进行存储。...到此这篇关于Python全局变量如何理解文章就介绍到这了,更多相关Python全局变量详解内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

    6K10

    pipeline语法_plain词根

    该指令支持一种特殊帮助方法credentials(),可以通过其在Jenkins环境标识符来访问预定义凭据。...(),可用于在Jenkins环境通过其标识符访问预定义凭据 选项 该options指令允许在Pipeline本身内配置Pipeline专用选项。...可用于防止同时访问共享资源等。例如:options { disableConcurrentBuilds() } skipDefaultCheckout 在agent指令默认跳过来自源代码控制代码。...whenwhen指令允许Pipeline根据给定条件确定是否执行该阶段。该when指令必须至少包含一个条件。如果when指令包含多个条件,则所有子条件必须为舞台执行返回true。...这与子条件嵌套在一个allOf条件相同(见下面的例子)。 更复杂条件结构可使用嵌套条件建:not,allOf或anyOf。嵌套条件可以嵌套到任意深度。

    2.1K30

    Jenkins2 学习系列28 -- 优化多分支流水线任务

    之前做法:项目代码每个分支有维护单独Jenkinsfile,这样不但麻烦而且冗余。...when 支持条件有 branch, environment, express, not, anyOf, allOf 具体使用可参见官方文档 下面是个使用when选项优化后Jenkinsfile,...所有分支使用一份Jenkinsfile即可: 有几点细节说下: changset 是提交变更文件列表,这里项目中即包含后台PHP代码也包含前端 JS 和 CSS文件,只有当提交包含了JS或...() 通过使用when, 只有往master分支提交代码才触发邮件step,post指令也可以写在stage 默认情况下,stage内所有代码都将在指定Jenkins agent上执行,when指令提供...beforeAgent选项,当他值为true时,只有符合when条件时才会进入该Jenkins agent,这样就避免没有必要工作空间分配 // https://jenkins.io/zh/doc

    1.3K10

    .NET Framework bug?try-catch-when 如果 when 语句抛出异常,程序将彻底崩溃

    在 .NET Framework 4.8 ,try-catch-when 如果 when 语句抛出异常,程序将彻底崩溃。而 .NET Core 3.0 不会出现这样问题。...Please select yours: 中文 English 官方文档 when 行为 你可以前往官方文档: 使用用户筛选异常处理程序 - Microsoft Docs 在其中,你可以找到这样一段话...即当 when 块中出现异常时,when 表达式将视为值为 false,并且此异常将被忽略。 示例程序 鉴于官方文档描述,我们可以编写一些示例程序来验证这样行为。...因为 when 异常被忽略,因此不会进入到外层 catch 块;因为 when 中出现异常导致表达式值视为 false,因此进入了更合适异常处理块 Catch 2 。...在 .NET Core 3.0 行为和 .NET Framework 4.8 行为 下面两张图分别是这段代码在 .NET Core 3.0 和 .NET Framework 4.8 输出:

    20320

    Python条件语句

    Python条件语句是通过一条或多条语句执行结果(True或者False)来决定要执行代码块。主要通过if关键字实现,条件其他分支用else。...python之后,python针对条件判断语句执行语法如下: if 判断条件成立: 执行语句…… else: 执行语句…… 多个if条件使用场景: if 条件1成立: 执行语句...1 elif 条件2成立: 执行语句2 else: 执行语句3 说明:if后面的条件在python只要是任何非0非空值,都会认为是True,即认为条件成立。...每个条件后面要使用冒号(:),表示接下来是满足条件后要执行语句块,使用缩进来划分语句块,相同缩进数语句在一起组成一个语句块。...那么,上面的学生分数案例,在python编写的话,可以写成下面的格式: score = int(input("请输入你成绩:")) if score < 60: print("你成绩不及格

    3.7K20

    less条件判断

    经过上一篇 less继承 讲解之后,本章节开展内容为 less 条件判断,less 可以通过 when 给混合添加执行限定条件,只有条件满足 (为真) 才会执行混合代码,首先想要看这个条件判断首先需要有混合才可以...,在混合小括号后面写 when 然后在编写一个小括号,在该小括号当中编写限定条件即可如下.size(@width, @height) when (@width = 100px) { width: @...我故意给了个 50 所以不会执行,可以通过编译之后代码查看结果图片when 表达式可以使用比较运算符 (>,=,<=,=)、逻辑运算符、或内置函数来进行条件判断,如上已经介绍过了比较运算符了,...: @height;}div { .size(50px, 100px); background: red;}如上代码含义为,只要宽度或者高度其中一个满足条件即可执行混合代码,(), () 相当于...JS ||,()and() 相当于 JS &&图片看完了逻辑运算符紧接着在看内置函数来进行判断,如下.size(@width,@height) when (ispixel(@width))

    61770

    MySQLcase when对于NULL值判断小坑

    今天在开发程序,从MySQL中提取数据时候,使用到了case when语法用来做判断,在使用过程在判断NULL值时候遇到个小问题; 具体现象测试如下: 表结构如下: CREATE TABLE...理想结果第3条记录为3 PROD ,但是却为空,说明这个判断null条件有问题; Mysqlcase when语法: 语法1: CASE case_value WHEN when_value THEN...2:第二种语法CASE后面不需要变量或者表达式,直接执行时候评估每一个WHEN后面的条件,如果满足则执行。...语句无法满足需求,下面我们再来看下面一个SQL语句,同样也存在问题,无法满足我查询需求,大家在使用要注意; mysql>SELECT -> id, -> CASE...主要是将第一种语法与第二种语法混用导致,case 后面的case_value 值有两种:真实值或者为null,而 when 后面的条件也有两个值:true或者false,所以出现查询结果和实际不匹配情况

    3K20
    领券