jenkins job builder定义job变量缺省值的覆盖顺序

Jenkins Job Builder 配置文件 本文简要介绍Jenkins Job Builder工具,并非全面介绍,主要侧重于配置文件的编写,以及Openstack具体使用JJB方面的介绍,以便为我们CI环境的使用提供参考。 阅读详情

一、jjb中的变量继承---官网定义

在JJB中可以为不同级别的变量定义默认值,这样用户可以覆盖job-templates中定义的变量。

每种定义类型的变量优先级如下:

  1. job-group
  2. project
  3. job-template
  4. defaults

从这个列表中我们可以看到,如果我们想在job-templates中覆盖变量,那么使用defaults配置是没用的,因为它具有最低优先级。

另一方面,job-group具有最高优先级。如果我们在job-group中定义一个变量并打算在项目级别覆盖它,是无法做到的。因此,请避免在job-group中设置变量,除非我们要对一组job强制执行设置并阻止projects覆盖它。

二、一些实践

对于project和job-template中变量定义的细节,我做了一些试验,结果如下:

1. 

- project:
    name: foo
    tasty: 'project-tasty'
    module:
      - apple:
          tasty: 'module-apple-tasty'
      - orange
    stream:
      - master:
          tasty: 'stream-master-tasty'
    jobs:
      - '{module}-verify-{stream}'

- job-template:
    name: '{module}-verify-{stream}'
    project-type: pipeline
    sandbox: true
    tasty: 'job-template-tasty'
    parameters:
        - string:
            name: TASTY
            default: '{tasty}'
    dsl:
        !include-raw-escape: '../../pipeline/kw/test.groovy'

apple-verify-master和orange-verify-master中的缺省参数均为:

猜测通过{module}-verify-{stream}这种方式生成job时,后边{stream}中的变量定义会覆盖前面{module}中的变量定义。

2. 然后我们去掉stream中的tasty变量定义:

- project:
    name: foo
    tasty: 'project-tasty'
    module:
      - apple:
          tasty: 'module-apple-tasty'
      - orange
    stream:
      - master
    jobs:
      - '{module}-verify-{stream}'

- job-template:
    name: '{module}-verify-{stream}'
    project-type: pipeline
    sandbox: true
    tasty: 'job-template-tasty'
    parameters:
        - string:
            name: TASTY
            default: '{tasty}'
    dsl:
        !include-raw-escape: '../../pipeline/kw/test.groovy'

apple-verify-master中的缺省参数:

现在为{module}中定义的参数了。orange-verify-master中的缺省参数:

为projects中定义的tasty变量的值。(project中定义的变量,默认会为所有的job-template生成这一变量值)

3. 最后我们去掉project中的tasty变量定义:

- project:
    name: foo
    module:
      - apple:
          tasty: 'module-apple-tasty'
      - orange
    stream:
      - master
    jobs:
      - '{module}-verify-{stream}'

- job-template:
    name: '{module}-verify-{stream}'
    project-type: pipeline
    sandbox: true
    tasty: 'job-template-tasty'
    parameters:
        - string:
            name: TASTY
            default: '{tasty}'
    dsl:
        !include-raw-escape: '../../pipeline/kw/test.groovy'

apple-verify-master中的缺省参数:

orange-verify-master中的缺省参数:

此时为job-template中默认定义的tasty变量值。

简单几个试验,不充分,仅供参考,如有错误请指正。

Jenkins:构建Job的设置 一、Jenkins Build Jobs 1.构建Job是一个持续化集成服务的基础; 2.构建Job是你的项目做一些事情,如编译、测试,打包,发布或其它方面的特殊方式; 3.一个项目通常会使用许多相关联的Job,例如你可能开始选择专门运行你的单元测试的构建job,如果它通过你继续执行更长时间的集成测试,运行代码质量检测,或者生成技术文档,最后打包你的项目并部署到一个测试服务上; 二、创建一个FreeStyle构建Job 1.创建一个新的Job,点击"New Item"菜单,Jenkins支持多种不 阅读详情

相关推荐

55-Jenkins-设置构建队列优先级

Jenkins-设置构建队列优先级

小白的博客 182

Jenkins Job Buidler

目录 Job Definitions Job 参数 Job Template Template变量的默认值 Project Views View Template Macro Folders Item ID’s Raw config Defaults Variable References Variable Inheritance Yaml Anchors & Aliases Custom Yaml Tags Action Tags Inclusion Tags

demon7552003的小本本 1131

jenkins-job-builder-workflow

jenkins-job-builder 的工作流插件模块 扩展以支持新项目类型workflow Python 模块。 基于 文档 请参阅 安装 pip install jenkins-job-builder-workflow 发展 要处理此项目,请安装依赖项、安装开发分支、进行更改并使用 tox 运行测试: pip install -r requirements.txt -r test-requirements.txt python setup.py develop # ... make changes ... tox 笔记 最好使用 virtualenv 来开发这个包。

介绍 Jenkins 模板引擎

本文首发于:Jenkins 中文社区 译者:linan607 在企业范围内实施 DevSecOps 实践具有挑战性。由于组织内的不同应用程序正在使用多种编程语言、自动化测试框架和安全遵从性安全合规工具,因此每个团队构建和维护流水线变得很难。 无论应用程序使用哪个特定的技术栈,大多数流水线都将...

chongyouai3644的博客 581

jenkins-job-wrecker:将Jenkins工作XML转换为JJB YAML

詹金斯·乔布斯(Jenkins Job Wrecker) 该死的时候了 将Jenkins XML作业转换为YAML。 然后可以将YAML馈入Jenkins Job Builder。 这些年来,詹金斯(Jenkins)有很多手工制作的工作吗? 该工具使您可以快速,准确地将Jenkins职位转换为JJB。 正在安装 您可以从PyPI安装发行版本: pip install jenkins-job-wrecker 或者,如果您想对其进行破解,请直接从GitHub安装: virtualenv venv . venv/bin/activate git clone https://github.com/ktdreyer/jenkins-job-wrecker.git python setup.py develop 现在,您的$PATH中将有一个jjwrecker实用程序。 用法 假设您有一个“

使用python-Jenkins批量创建及修改jobs操作

主要介绍了使用python-Jenkins批量创建及修改jobs操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

探秘 Jenkins Job Builder: 简化持续集成工作流

探秘 Jenkins Job Builder: 简化持续集成工作流 在持续集成(CI)和持续部署(CD)的世界中,Jenkins 是一个广泛使用的工具。然而,手动配置每个构建任务可能会变得繁琐且容易出错。这就是 的价值所在。这个开源项目旨在通过简洁的 YAML 配置文件自动化 Jenkins 工作流的创建和管理。 项目简介 Jenkins Job Builder 提供了一种声明式的配置方式,允许...

gitblog_00084的博客 557

从芯片原厂到BSP工程师:技术转型与核心能力解析

嵌入式系统开发中,BSP(板级支持包)作为连接硬件与操作系统的关键层,其开发能力直接影响设备稳定性与性能。理解Linux内核架构(如内存管理、进程调度)和基础接口协议(I2C/SPI/USB)是BSP工程师的核心技能。在芯片验证与驱动开发场景中,多核异构系统调试与稳定性问题排查(如死机分析)展现了工程师的实战能力。随着物联网与智能设备发展,掌握从硬件适配到系统优化的全链路技术栈,成为职业发展的关键突破点。

weixin_36012152的博客 599

jenkins(四)jenkins job builder(未完)

1、简介: JJB:全称是jenkins job builder,提供了快速配置jenkins任务的能力,便于puppet、docker等进行配置管理。通过jjb将yaml/json文件转化为jenkins可识别的xml文件,从而实现快速的配置。 并且,使用了JJB之后,对jenkins的配置,都可以使用版本库进行管理,这样就很容易追溯历史,便于管理,极大的简化了工程的配置管理,为自动化的持续

zhaole524的专栏 3696

国产SR8201F以太网PHY芯片调试避坑指南:从机贴失败到杜邦线救场的实战记录

本文详细介绍了国产SR8201F以太网PHY芯片的调试避坑指南,涵盖硬件设计、PCB布局、SMT贴片及软件驱动等关键环节。通过实战案例解析,帮助工程师解决MII/RMII接口配置、电源设计、信号完整性等典型问题,提升以太网通信稳定性与EMC性能。

c6d7e8f9g的博客 1216

Anomalib实战指南:从零开始构建自定义异常检测数据集

本文提供了一份详细的Anomalib实战指南,指导用户从零开始构建自定义异常检测数据集。文章深入解析了数据准备的核心步骤、目录结构规范,并对比了PatchCore与FastFlow等关键模型的适用场景。通过清晰的代码示例,手把手演示了环境配置、模型训练与推理评估的全流程,旨在帮助开发者快速掌握这一工业视觉异常检测利器,有效解决实际生产中的缺陷识别难题。

weixin_29054245的博客 643

【Pipeline】Jenkins流水线中如何使用全局变量

例如我们在 stage1中 利用 script 代码块 设置赋值了一个 变量,然后想在 stage2中使用。

1070

Python自动化测试报告:飞书群机器人消息卡片实战

本文详细介绍了如何利用Python和飞书群机器人实现自动化测试报告的智能通知。通过构建可定制的消息卡片,将测试结果(如通过数、失败数)以清晰、美观的格式自动推送至团队群聊,并支持一键跳转查看详细报告,从而显著提升团队协作与问题响应效率。

k6l7m8n9的博客 811

jenkins的config.xml转jenkins job builder使用的yaml

我们已经有了比较标杆的CI项目,需要将其变成JJB能使用的YAML文件。 于是,找到了Jenkins Job Wrecker

yyw794的专栏 4118

文档信息抽取技术:从非结构化文本到结构化信息的旅程

文档信息抽取技术是一种将非结构化文本转化为结构化信息的技术。这种技术可以从各类文档中自动提取出如实体、关系和其他重要信息,并将它们转化为方便计算机进一步处理和分析的格式。

INTSIG的博客 980

浅谈IC测试向量(pattern)及其转换

随着集成电路的飞速发展,其规模越来越大,对电路的质量与可靠性要求进一步提高,集成电路的测试方法也变得越来越困难,为了实现芯片的快速测试和筛选,ATE设备为其提供了强有力的支撑。ATE运用芯片设计仿真文件,将其作为芯片输入激励,通过ATE测试平台提供芯片测试环境,将芯片的输出和测试结果进行比较,以此来判定芯片的好坏。 说起IC测试,不得不说一下Pattern这个词,它中文的意思是模式。在图像处理中,这个词意思为图像的纹理特征,而在IC也即芯片测试行业,这个词实际上代表了需要测试芯片的时序特征。简单的说,在测

flomingo1的专栏 1万+

How to deploy CI test env (Jenkins+Docker)

1. Deploy jenkins-master(1).  Add the Jenkins repository to the yum repos, and install Jenkins[root@jenkinsmaster ~]# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenk...

qq_33744949的博客 2233

Android14 Qcom 从Framework到Driver带你连接WIFI(一)

前面已经讲完了WIFI打开的流程,那么通过UI这时候是可以选择需要连接的网络进行连接。从这里开始我们看连接的流程。

IAYLBL的博客 695

使用jenkins之二Job

每次构建之前把这个job所在的工作区目录里面的某些文件(比如临时文件,缓存文件等)清空掉再进行构建。我们一般会对这个工作空间下的文件进行打包和部署,部署之后就可以把工作空间清理掉。当有多个jobs需要互相关联时,就需要设置jobs的上下游关联关系。的Git地址来拉取代码到job目录下的一个名为。这里是设置触发构建的时机,支持多种时机。安装jenkins时如果你选择的是。插件安装上,如需其他版本控制软件如。的概念,具体写法可点击问号说明。回到Jenkins的控制面板的。这里还可以设置一系列的。........

buyue 469

Linux iperf 进行跑流测试时,为啥单条流会有速率上不去的问题?

iperf

1042484520@qq.com(邮箱) 3086

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Jenkins Job无法停止

转到 “管理Jenkins” —> “脚本控制台” 并运行如下脚本,只需指定JobName和JobNumber即可: Jenkins .instance.getItemByFullName("JobName") .getBuildByNumber(JobNumber) .finish(hudson.model.Result.ABORTED, new java.io.IOException("Aborting build")); 参考文章:如何在Jenkins上停止无法阻止

RSQ博客 2733

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Jenkins任务优先级插件

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34240520的博客 2078

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JJB(Jenkins Job Builder) Itch Scratcher

? what JJB creates Jenkins XML configuration file from a YAML/JSON definition file and just uploads it to Jenkins. ? why You can keep your job descriptions in human readable text format in a version c...

weixin_42445052的博客 484

Jenkins 系列: (七) Jenkins 环境变量管理

今天我们谈谈 Jenkins 中环境变量相关的问题,Jenkins中有多个地方可以设置环境变量,从而在build 构建过程中可以使用。环境变量的来源Jenkins系统变量Jenkins 有很多系统内置的变量,在build 脚本或者step中可以直接使用,比如 JENKINS_HOME,JENKINS_URL, JOB_NAME,JOB_URL, BUILD_ID, BUILD_NUMBER, BU...

huaqiangli的博客 5万+

DevOps系列之Jenkins pipeline-03Jenkins核心语法1

声明式流水线的定义,所有的语句块都在pipeline{ }中。 pipeline { //pipeline } 1. agent构建节点 参数: any: 运行在任一可用节点。 none:当pipeline全局指定agent为none,则根据每个stage中定义的agent运行(stage必须指定)。 label:在指定的标签的节点运行。 node:支持自定义流水线的工作目录。 ## 任意节点 pipeline { agent any } ## 指定标签节点 pipelin

lee_yanyi的博客 1717

【Jenkins】在Stage块修改环境变量的值

在默认的情况下,一旦设置了新的环境变量,那么这个环境变量在整个Pipeline生命周期里都不会改变,但是有时我们需要在Stage阶段临时修改变量值,传递给其他命令使用,那么如何实现呢? So easy! 使用withEnv命令即可,它会让环境变量在withEnv语句块临时被修改,一旦不在withEnv语句块则还是原始值 pipeline { agent any environment { Name = 'null' } stages {

KEEP MOVING. 4047
上一篇: Paas Saas Iaas的概念梳理
下一篇: 依赖外部jar包问题记录
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值