首页
学习
活动
专区
工具
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集群时,我们需要对数据库执行授权操作,当然,授权操作主库和从库都要进行

61230

MYSQLcase when语法作用

严格来讲,不应该叫“mysql条件判断语句case when语法”,它专业语术是:“mysql流程控制语句case语法”;这一点对于做程序的人来说一定要清楚。...[ELSE statement_list] END CASE CASE存储程序 语句实现了一个复杂条件结构。 注意:也有一个表达,这不同于这里描述 陈述。...将该值与when_value每个WHEN子句中表达式进行 比较, 直到其中一个相等。当when_value找到平等时,相应THEN子句 statement_list执行。...如果否when_value或 search_condition匹配测试值,并且CASE语句不包含任何ELSE子句,则CASE语句错误结果将找不到Case。...CASE代码示例: 1、要处理没有任何值与任何WHEN子句匹配情况 ,请使用ELSE 包含空白 BEGIN ... END块情况,如下所示。

2.9K30

史诗级整理 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.6K20

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

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

1.7K20

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控制权。

1K10

Python全局变量如何理解

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

5.3K10

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.2K10

.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 输出:

16820

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.6K20

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))

46770
领券