开始时获得Jenkins的构建时间
我想获得构建启动的时间.我知道构建名称和数字,但是技巧是构建可能尚未完成.该脚本可以在Jenkins服务器上运行,也可以是API调用.我能做到这一点吗? 解决方案 您可以安装 zentimestamp plugin 使用此插件添加的BUILD_TIMESTAMP变量. 注意: 您需要指定SimpleDateFormat模式(例如yyyyMMddHHmmss). 您必须激活全球属性! 其他解决方案 在詹金斯(Jenkins)作业下,您会在左侧找到投票登录 或者您可以像这样使用URL jenkinsurl/job/jobname/buildnumber/pollinglog/pollinglog 所有详细信息将在这里可用,您可以通过谁找到它开始的时间,哪个修订IP地址... 其他解决方案 是的,您可以使用Jenkins对象获得开始时间.对于您的脚本内部. Jenkins.getInstance().getItemByFullName(
0 2024-04-05
编程技术问答社区
docker build publish插件中的错误
您可以帮助我配置. 我有Docker Repo的设置伪像,并尝试从Github Docker文件推动图像构建. 以下是我遇到的错误: Error response from daemon: Invalid registry endpoint https:// https://artifactory.corp.inmobi.com/v1/: Get https:// https://artifactory.corp.inmobi.com/v1/_ping: dial tcp: unknown port tcp/. \ If this private registry supports only HTTP or HTTPS with an unknown CA certificate, \ please add `--insecure-registry https:` to the daemon's arguments. \ In the case of HTTPS
0 2024-04-05
编程技术问答社区
Jenkins 我怎样才能上传一个文本文件并将其作为一个参数?
我有一个txt文件,它在里面拿着一个字符串,我希望能够在我的一个脚本中使用此字符串,所以我想知道是否有一种方法可以将文件的内容设置为一个我可以在脚本中使用的构建属性或参数应该与使用构建环境属性之一相同. 例如:持有作业名称的$ {job_name},因此,我想以相同的方式访问文件的内容,该文件中保留了一些值. 有可能吗? 解决方案 您可以通过文件作业参数上传文件. 您可以使用 您可以使用要从文件中读取值并将其注入构建为环境变量,以便可以通过其余的构建步骤/脚本使用它们. 您的问题尚不清楚您要做什么.根据所需的内容选择上面的3种方法之一,或澄清您的问题.
2 2024-04-05
编程技术问答社区
Jenkins-Publish Over SSH Plugin: 如何复制目录
我正在尝试使用我在工作空间中有一个名为foo的目录,在构建过程中,我想将此目录中的所有内容复制到远程服务器. 我尝试了此模式foo/**,但是它没有复制所有子目录. 有什么建议吗?否则这不是我应该使用的插件? 谢谢 解决方案 对于目录的递归副本,您应该给予 foo/**/* 我使用本地部署詹金斯在笔记本电脑上验证了这一点.它可以正常工作.
0 2024-04-05
编程技术问答社区
如何在MultiJob插件中传递一个构建号?
Multijob Plugin 我的构建过程,但是我之前必须解决一个问题:有三个作业A,B和C.SVN触发作业A和B(并行执行),而Job C开始了A和B完成.作业C需要作业A和B的工件作为输入. -> Job A (with A.zip) Trigger -> Job C (use artifacts A.zip and B.zip) -> Job B (with B.zip) 使用 Multijob插件很容易,但是很容易,但是很容易,但是我不知道如何在工作中获得工作A和B的相应工件.我可以将构建数字传递给工作C(buildnr(a)!= buildnr(b))吗?还是有一种更聪明的方法来解决问题? 解决方案 多job插件设置下每个工作的环境变量(代码): _BUILD_NUMBER _BUILD_RESULT 其中JOBNAM
0 2024-04-05
编程技术问答社区
如何在Jenkins中添加带可选复选框的字符串参数
我正在尝试将字符串参数添加到我的jenkins构建中,但是我找不到使其可选的选项,在jenkins wiki上,我找到了一个筛选,可以选择使其可选:. 解决方案 所有参数均为"可选".除非是 验证字符串参数 't关心您输入了什么价值或是否输入了任何内容. 唯一关心参数的是您的作业实现,即您的脚本(bash)和其他被配置为使用参数的操作. 如果您的参数称为" param ",则可以通过: 访问其值 ${Param}在Linux上. %Param%在Windows上. 编辑回答评论: 要将参数从"父"构建到下游构建,取决于您如何触发下游构建.如果您正在使用 call/call/触发/触发参数化构建 plugin( plugin(您应该是),然后有一个简单的选项将父参数传递给底工构建.它们将通过相同的param名称构建,例如上面的示例中的${Param}. . 如果您触发了其他方式,则有许多解决方法,主要是通过将它们存储在属性文件中,然后通过 envinj
2 2024-04-05
编程技术问答社区
如何用Jenkins和Pipeline多分支插件在不同的分支上有唯一的构建编号?
我们使用的是带有蓝色海洋的Jenkins管道多核插件. 通过我的阅读,我相信将您的项目的构建号与Jenkins运行非常普遍,因为这允许从已安装的应用程序到CI系统的可追溯性,然后再进行源控制的更改,然后在提示更改的问题. 问题是,对于每个分支,运行编号开始于0.对于具有多个分支的项目,似乎无法保证一个唯一的构建编号. 解决方案 您可以只有snag是$GIT_BRANCH包含/字符,加上您在命名分支时使用的任何字符,并且在您想要ID的所有位置都可能允许或可能不允许使用这些字符. ($BUILD_URL也将包含诸如:和/之类的字符)如果这是一个问题,一个解决方法是用tr删除不需要的字符: export MY_ID=$(echo $GIT_BRANCH-$BUILD_NUMBER | tr -dc [A-Za-z0-9-]) (-dc表示删除这些字符的补充,因此a-z,a-z,0-9和-是您想要 keep 的字符.) 其他解决方案 也许您可能想尝试一个唯一
2 2024-04-05
编程技术问答社区
在Jenkins的构建步骤上超时
在詹金斯(Jenkins)中,有没有办法给每个或选定的构建步骤提供不同的超时? 构建时间插件输出可以在完整项目上提供超时"如果构建的构建"功能,我需要为每个步骤提供不同的超时.这样,我可以使我的过程更加高效. 解决方案 如果您使用的是Jenkins管道,并且较新的声明风格(具有顶级pipeline {元素),则可以使用timeout option可以用于整体作业或个人阶段: pipeline { agent any options { timeout(time: 1, unit: 'HOURS') // timeout on whole pipeline job } stages { stage('Example') { options { timeout(time: 1, unit: 'HOURS') // timeout on this stag
0 2024-04-04
编程技术问答社区
Jenkins/Hudson如何并行运行超过1层的多个作业?
我正在尝试并行在詹金斯(Jenkins)运行以下工作流程.因此,例如,A和B同时运行.完成后,同时运行A2和A3等... 这似乎是一个很常见的用例,但是我尝试过的大多数插件都不会超过1级深,下面的A分支就是这种情况.加入插件似乎在这里没有帮助. I 阅读有关使用促销插件的阅读,但我对指纹/工件的内容有点迷惑,以归档以进行这项工作. 关于如何使此简单构建管道起作用的任何线索? 解决方案 AS jgritty 指出您可以使用构建流量插件.为了获得想要的并行执行的类型,您可以运行等于以下构建流脚本的内容: buildTrigger = build("Trigger") parallel( { buildA = build("A") buildA1 = build("A1") parallel( { buildA2 = build("A2")
4 2024-04-04
编程技术问答社区
我怎样才能修改Jenkins用来控制从机的负载平衡行为?
我们将Jenkins用于CI构建系统.我们还使用"并发构建",以便詹金斯将独立构建每个变化.这意味着我们通常会同时拥有5或6个同一工作的构建.为了适应这一点,我们有4个奴隶,每个奴隶和12位执行者. 问题是詹金斯并没有真正在其奴隶中"负载平衡".它试图在先前构建的同一从属上建立一项作业(大概是为了减少源控制的时间同步).这是一个问题,因为詹金斯将在同一奴隶(或2个奴隶之间的可能性更大)上构建我们构建的所有6个实例.一台构建机被陷入困境,运行非常缓慢,而其余的机器则闲置. 如何配置詹金斯的负载平衡行为及其如何控制其奴隶? 解决方案 如果您找不到自动执行它的插件,则可以对您可以做什么的想法: 安装/p> 添加从参数到您的工作 将作业限制为${SLAVE} 添加一个将执行以下操作的触发作业: 通过系统槽脚本分析负载分布,并决定要启动哪个节点. 用参数化触发器 插件 通过将适当的值分配给从参数. 为了分析负载分配,您需要安装 >并熟悉其他
0 2024-04-04
编程技术问答社区
从属性文件中检索参数
我有几个使用相同参数和参数值的Jenkins参数化作业. 当我必须更改其中一个参数的默认值时,我需要仔细考虑所有这些工作并重新配置它们. 解决此问题的一个简单解决方案将是从配置文件中检索所有参数的选项(在Master/在工作区中),但我找不到足够的实现. 我希望能够使用标准Java配置文件 (以格式为"键" =" value") ,然后参考这些参数像构建过程中的所有其他参数一样. 您知道适当的解决方案吗? 解决方案 使用 envinject插件注入环境变量构建步骤.小故障是,那么您不能轻松地覆盖它们.一种解决方案是与有条件buildstep plugin .然后,您可以定义一个布尔参数覆盖 false 默认情况下.然后,您只有在 Override 为 false 时,才可以有条件地构建步骤.当您需要用手提供的值(在自定义调用以运行作业的自定义调用中)指定覆盖值并将 Override 转换为 true 时. 其他解决方案 我在哈德森作业中使用Hudson与
0 2024-04-04
编程技术问答社区
远程触发构建后检查Jenkins作业状态
我有一个脚本可以使用令牌触发詹金斯上的作业.这是我的脚本: JENKINS_URL='http://jenkins.myserver.com/jenkins' JOB_NAME='job/utilities/job/my_job' JOB_TOKEN='my_token' curl "${JENKINS_URL}/${JOB_NAME}/buildWithParameters?token=${JOB_TOKEN}" 运行后,我将得到以下响应: * Hostname was NOT found in DNS cache * Trying 10.5.187.225... * Connected to jenkins.myserver.com (10.5.187.225) port 80 (#0) > GET /jenkins/job/utilities/job/my_job/buildWithParameters?token=my_token HTTP/1.1 > Us
0 2024-04-04
编程技术问答社区
如何使一个Jenkins作业在多个同时进行的上游作业成功后启动?
为了获得最快的反馈,我们偶尔希望Jenkins作业并行运行.詹金斯(Jenkins)有能力在作业完成时开始多个下游作业(或"叉子"管道).但是,詹金斯似乎没有任何方法可以使下游工作的所有分支开始成功(或"加入"叉子返回). 詹金斯(Jenkins/strong>上游工作成功"). 这是我所说的内容的可视化.有人知道是否存在一个插件可以做我追求的事情? 编辑: 当我最初在2012年发布此问题时,杰森的答案(加入和促进的构建插件)是最好的,而我使用的解决方案. 但是,在这个问题之后一年左右,Dnozay的答案(构建流量插件)很受欢迎,这是一个更好的答案.对于它的价值,如果人们今天问我这个问题,我现在建议这样做. 解决方案 过去我在这种情况下使用了两种解决方案: 使用加入插件"作为目标工作.您必须指定"功能测试"和"绩效测试",并以某种方式通过后构建来启动工作. 参数化触发插件对此很好. 使用促进了您的"部署"工作,指定下游作业完成并指定功能和
0 2024-04-04
编程技术问答社区
Jenkins全局工具安装-自动安装NodeJs脚本
我正在尝试自动化詹金斯的全局工具安装.我的要求是为 nodejs , golang 和 maven 安装工具.我能够通过运行以下时髦脚本来实现安装. import hudson.model.* import hudson.tools.* import jenkins.plugins.nodejs.tools.* import jenkins.model.* def inst = Jenkins.getInstance() def desc = inst.getDescriptor("jenkins.plugins.nodejs.tools.NodeJSInstallation") def versions = [ "nodejs-3.x": "3.7.0", "nodejs-4.x": "4.6.0", ] def installations = []; for (v in versions) { def installer = new NodeJSInstal
0 2024-04-04
编程技术问答社区
Jenkins中的Build-timeout插件:多长时间是'太长'?
我想利用此插件,但是"如果构成构建"选项"流产构建"没有设置任何计时器,并且插件的描述并未说明计时器多长时间,它只是说:"这个插件允许您在构建中花费太长时间自动中止'' 我的问题是多长时间? 1小时,更少/更多? 我可以设置自己的时间吗? 整个工作的计时器还是批处理文件中的每一行都有该计时器? 解决方案 我刚刚升级为Jenkins 1535,并提供了新的插件升级.升级解决了我遇到的问题.超时时间现在可用. 其他解决方案 build timeout插件具有多个选项(取自 绝对时间.如果您确切知道您的构建时间不应提前超过多少时间 ,请使用此此事. 弹性时间.如果您希望Jenkins决定时间,请使用此选项.它基本上平均在最后N构建中,并将停止 建造如果超过给定百分比.如果您不提前知道 您的构建需要多少时间,使用此选项 可能卡住了.使用jenkins的executor.html#islikelystuck()基于启发式方法检测构建的方法是可疑的长时间 在您的情
2 2024-04-04
编程技术问答社区
如何使一个Jenkins作业在多个同时进行的上游作业成功后启动?
为了获得最快的反馈,我们偶尔希望Jenkins作业并行运行.詹金斯(Jenkins)有能力在作业完成时开始多个下游作业(或"叉子"管道).但是,詹金斯似乎没有任何方法可以使下游工作的所有分支开始成功(或"加入"叉子返回). 詹金斯(Jenkins/strong>上游工作成功"). 这是我所说的内容的可视化.有人知道是否存在一个插件可以做我追求的事情? 编辑: 当我最初在2012年发布此问题时,杰森的答案(加入和促进的构建插件)是最好的,而我使用的解决方案. 但是,在这个问题之后一年左右,Dnozay的答案(构建流量插件)很受欢迎,这是一个更好的答案.对于它的价值,如果人们今天问我这个问题,我现在建议这样做. 解决方案 过去我在这种情况下使用了两种解决方案: 使用加入插件"作为目标工作.您必须指定"功能测试"和"绩效测试",并以某种方式通过后构建来启动工作. 参数化触发插件对此很好. 使用促进了您的"部署"工作,指定下游作业完成并指定功能和
0 2024-04-04
编程技术问答社区
Git参数插件-过滤分支
我正在尝试使用git参数插件来列出在构建过程中需要进行的所有发布分支. 如果我仅使用指定参数类型的插件,则可以正常工作 简单的插件配置 尝试使用 > 选项列表显示为空. 我已经尝试了具有以下值的分支过滤器字段: Origin/Release/* 版本* Origin/Release//* ,但它们似乎都错了. 正如任何人配置了这样的过滤选项一样? 如果我最伤心地只列出了我的发行分支,则我的开发(用于测试环境)和主(用于生产环境). 是否有多次过滤的方法? 解决方案 GIT参数插件提供了为Regex使用以指定分支或标签的选项.要遵循的步骤 勾选的复选框,指出"此项目已被参数化" 指定参数的名称,然后选择参数类型(在您的情况下) 单击高级选项,并与分支过滤器填充以释放Regex origin/release/.*,origin/develop/.*用于开发和origin/master/.* for Master 您可以根
0 2024-04-03
编程技术问答社区
在Jenkins中用xUnit插件提升单元测试不工作
我不是C程序员,但我必须在詹金斯(Jenkins)上进行增强测试.现在,我已经在Jenkins中安装了Xunit插件. 我添加了一个后构建动作:"发布Xunit测试结果报告" 然后,在这个后构建步骤中,我添加了:" boostTest-1.x(默认)" 现在我有以下选项要设置: /a> 我设置的选项是随机的,所以请帮助我,我什么都不了解,我什么都没找到教程. 我尚未使用Boost单元测试,也没有使用Xunit Jenkins插件. 有人可以帮助我吗? 编辑:詹金斯说我这个: make[1]: Leaving directory `/var/lib/jenkins/workspace/southernd_test' [xUnit] [INFO] - Starting to record. [xUnit] [INFO] - Processing BoostTest-1.x (default) [xUnit] [INFO] - [BoostTes
2 2024-04-02
编程技术问答社区
如果具有给定标签的节点正在运行另一个作业,则阻止该作业的运行。
在詹金斯(Jenkins)中,如果使用 build blocker插件运行. ,我们可以阻止A作业A 类似地或以某种方式,我想要一份工作,例如:ex: emote_dumb_job to 不运行/在队列中)如果在上有任何在上运行的任何用户选择从上运行的作业,直到这些从那些从重新获得自由为止. for ex:我不想运行一项工作(它将在线/在线删除一堆奴隶 - 使用下游作业或通过调用一些groovy/scriptler脚本),直到这些从在它们上运行的活动/过程中? 最终目标是优雅地删除jenkins节点奴隶,即节点/从从脱机标记,然后任何现有作业(在从服务器上运行已完成),然后删除奴隶. . 解决方案 用于删除所有离线节点,在下面的脚本调整脚本并仅在从属上运行dodelete(),其中isoffline()为true或isonline()为false.如果要删除所有节点(请小心),请不要使用以下如果语句: if ( aSlave.name.indexOf(
0 2024-04-01
编程技术问答社区
使用通用Webhook参数为bitbucket拉动请求结帐的GIT SCM配置
此stackoverflow页面可以帮助您使用通用的Webhook触发器结帐jenkins中的Bitbucket拉请. 先决条件: 詹金斯: 1)在Jenkins中安装通用的Webhook触发插件和Bitbucket插件 2)在Jenkins配置中配置" Bitbucket端点". 3)在Jenkins中创建样本"管道"作业(可以配置通用的Webhook插件/配置BitBucket Repo/include自定义jenkins文件路径) bitbucket: 4)在Bitbucket Repo中配置Webhook,以连接到Jenkins Webhook插件并检查"事件" - 推送,评论添加. 现在假设您可以通过评论从Bitbucket PR触发Jenkins的作业. 我在触发后克隆了bitbucket plapquests的问题.它与git scm配置有关. 以下是我解决此问题的方式. 1)在您的示例管道作业中,在通用Webhook插
0 2024-03-31
编程技术问答社区