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

通过jenkins的Groovy script.Running从artifactory获取多个作业的最新版本号。

Jenkins是一个开源的自动化服务器,用于实现持续集成和持续交付。它提供了丰富的插件生态系统,可以与各种工具和技术集成,包括Groovy脚本、Artifactory等。

Groovy是一种基于Java的动态编程语言,可以无缝地与Java代码集成。在Jenkins中,可以使用Groovy脚本来编写自定义的构建逻辑和自动化任务。

Artifactory是一款功能强大的软件包管理工具,用于管理和分发软件包、构件和依赖项。它提供了丰富的功能,包括仓库管理、版本控制、安全性管理等。

通过Jenkins的Groovy脚本,可以实现从Artifactory获取多个作业的最新版本号的功能。以下是一个示例的Groovy脚本:

代码语言:txt
复制
import groovy.json.JsonSlurper

def getLatestVersionFromArtifactory(jobNames) {
    def latestVersions = [:]
    
    jobNames.each { jobName ->
        def url = "https://artifactory.example.com/api/search/latestVersion?repo=repoName&name=${jobName}"
        def response = new URL(url).text
        def json = new JsonSlurper().parseText(response)
        
        latestVersions[jobName] = json.version
    }
    
    return latestVersions
}

def jobNames = ["job1", "job2", "job3"]
def latestVersions = getLatestVersionFromArtifactory(jobNames)

latestVersions.each { jobName, version ->
    println("Job: ${jobName}, Latest Version: ${version}")
}

上述脚本通过调用Artifactory的API接口,获取指定仓库(repoName)中指定作业(jobNames)的最新版本号,并将结果存储在一个Map中。可以根据实际情况修改Artifactory的URL和参数。

推荐的腾讯云相关产品是Tencent Cloud Artifact Hub(https://cloud.tencent.com/product/ah),它是腾讯云提供的一款软件包管理工具,类似于Artifactory。它提供了稳定可靠的软件包存储和分发服务,支持多种语言和框架,适用于云原生应用开发和部署。

请注意,以上答案仅供参考,实际情况可能因环境和需求而异。建议根据具体情况进行调整和扩展。

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

相关·内容

Devops成功八大炫酷工具

Jenkins 图:使用Jenkins管理构建到部署整个应用交付流程 Croy说Jenkins已经被用在配置管理和部署代码上,它也能够与Puppet、Chef和容器技术一起使用。...Groovy语言开发人员就正在使用Artifactory和JFrogTeamCity来进行持续集成。...Groovy开发者Guillaume Laforge说他们使用TeamCity来构建Groovy然后存储到Artifactory仓库,之后再通过Bintray进行分发。...此外Bintray还可以将发布程序同步到Maven主仓库中,这样他们一发布开发者马上就能用上最新版本Groovy。...New Relic 图:使用New Relic企业可以迅速多个角度查看并解决应用中出现错误 New Relic高级产品经理Stevan Arychuk说New Relic可以提升高质量软件交付速度并同时降低企业所面临风险

1.1K41

每个 Jenkins 用户都应该知道这三个最佳实践

它有什么好处 作业透明化 如果你使用过 Bamboo 或 Jenkins 1.x 版本,你知道想要从配置页面(GUI)来快速了解一个作业逻辑是多么困难,尤其是对于那些不太了解 CI 工具的人更是难上加难...但是,如果 Jenkins 作业通过 GUI 配置,当托管 Jenkins 服务器损坏时,你业务可能面临丢失风险。因此,从业务连续性角度来看,它也暗示我们要使用配置即代码。...比如发送电子邮件、打印日志、将 build 放到 FTP 或Artifactory 等功能都可以放到 Jenkins 共享库中。...比如当你需要管理很多个仓库里自动化流水线时候,使用 Jenkins 共享库不需要更新每个代码仓库里 Jenkinsfile,只更改共享库里代码即可。 这样方式也鼓励重用和跨团队共享。...注:如果分支已经代码仓库删掉了,这些分支则也会相应从这个 Jenkins Job 里删除掉或是像上面那样显示划掉状态(这里取决你 Jenkins 设置)。Pull Request 也是同理。

1.8K01
  • DevOps技术实践中一些总结

    2 容器构建资源池部署 构建平台是部署在vm中,一个生产Master和N多个Slave。由于构建项目的增加,平台现有项目1k+,并发数量也增加了很多。问题也来了。...Jenkins配置 master节点创建新slave指定标签名称并创建label。 通过上述操作能够实现 Jenkins master能够正常连接到容器中Slave节点。...我们尝试过通过JenkinsK8S插件来动态生成Slave节点,但每次生成等待时间有点长。所以采用固定Slave方式。 ?...定义制品版本号规范(例如:maven项目中pom文件中version定义规则) 2. 配置流水线中制品库上传之前质量关卡。 3....借助Artifactory插件完成制品上传(定义上传目录和包名称)。 3. 通过GitlabAPi创建代码Tag标签。

    85310

    使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101

    代码仓库安排 本次实验涉及以下多个代码仓库: % tree -L 1 ├── 1-cd-platform # 实验环境相关代码 ├── 1-env-conf # 环境配置代码-实现配置独立 └── 1-...Jenkins agent * 2 Jenkins agent 运行在 Docker 容器中,共启动两个。 Artifactory * 1 一个商业版制品库。笔者申请了一个 30 天商业版。...重点在 Spring Boot 部署核心逻辑。它主要包含以下几部分: 创建应用目录。 制品库下载指定版本制品。 生成 Systemd service 文件(实现服务化)。 启动服务。...具体解决办法就是在启动容器时,加入参数:--network 1-cd-platform_cd-in-practice 5.2 Jenkins 初次启动初始化 在没有做任何设置情况启动 Jenkins,...这个过程必须是手工。笔者希望这一步也是自动化Jenkins 启动时会执行 init.groovy.d/目录下 Groovy 脚本。

    1.5K10

    制品库实践: Jenkins&Nexus&Artifactory集成

    本章我们主要讲述Jenkins与制品库nexus、artifactory集成,上传下载制品。 ?...目录 部署 功能 基本概念 上传制品 集成jenkins上传制品 使用nexus插件上传制品 发布制品 nexus接口 artifactory集成 构建制品 上传制品 ---- 部署 测试环境使用Docker...组件可以由多个嵌套组件本身组成。组件提供了所有构建块和功能。可以通过组装并添加自己业务相关组件来创建功能强大完整应用程序。在不同工具链中,组件称为工件,程序包,捆绑包,归档和其他术语。...另一方面,Docker格式为资产提供唯一标识符,并将其称为Docker层。这些资产可用于不同组件-Docker映像。例如,一个Docker层可以是多个Docker映像引用特定操作系统。 ?...---- 集成jenkins上传制品 步骤:获取Jar包名称、读取pom文件、获取坐标信息、使用mvn deploy上传。

    4.8K20

    看完这 18 个问题,你也能打造企业级 Pipeline

    笔者通过下面的18个问题来讲解一下为什么企业级持续集成服务需要使用pipeline构建方式。 1 Jenkins 2.0 最大改变是什么?...Jenkins2.0 最早支持 pipeline,如果对Groovy语法很熟悉,可选择脚本式pipeline,可以实现更复杂逻辑。 5 不会 Pipeline 语法怎么办?...Jenkins pipeline支持并行构建任务,解决多个环境进行构建,或多个环境进行发布场景。使用串行十分影响效率,采用并行方式,通常是将命令下发给不同agent,节省构建时间。...(语法获取可以使用片段生成器,搜properties) ? 14 如何在 Pipeline 中设置通过轮询代码仓库启动 job?...在集成测试时候需要大量此类操作,公共组件构建了最新版本要同时触发所有依赖他构建项目进行构建,确保此版本能正常被业务应用使用。 ?

    4.7K30

    打造企业级pipeline服务18个疑问

    笔者通过下面的18个问题来讲解一下为什么企业级持续集成服务需要使用pipeline构建方式。 一,Jenkins2.0最大改变是什么?...Jenkins2.0最早支持 pipeline,如果对Groovy语法很熟悉,可选择脚本式pipeline,可以实现更复杂逻辑。 五、不会pipeline语法怎么办?...Jenkins pipeline支持并行构建任务,解决多个环境进行构建,或多个环境进行发布场景。使用串行十分影响效率,采用并行方式,通常是将命令下发给不同agent,节省构建时间。...(语法获取可以使用片段生成器,搜properties) 9.png 十四、如何在pipeline中设置通过轮询代码仓库启动job?...在集成测试时候需要大量此类操作,公共组件构建了最新版本要同时触发所有依赖他构建项目进行构建,确保此版本能正常被业务应用使用。

    3.8K20

    如何使用代码配置运行Jenkins实例?

    第二个项目用于与Jenkins DSL插件进行交互。目标是将作业,文件夹和视图作为代码存储在groovy文件中,因此只有我们在Git存储库中定义内容才适用于Jenkins实例。...这个插件甚至可以让您定义一个种子作业,它是一个获取DSL文件并应用更改以创建其他作业,视图以及更多功能作业。 在我们情况下,以下jenkins.yaml文件用于提供配置。...种子作业Github获取另一个项目,该项目包含一些基于DSL对象来创建资源。 jenkins: systemMessage: "Jenkins As Code Concept."...可以通过git更改触发种子作业,因此,如果您通过代码删除或修改作业,则无需手动执行即可在Jenkins实例上对其进行更新。 结论 对于多环境部署问题,有很多更好方法。...我喜欢这项研究;我想找到一种自动执行一些重复性和手动任务方法,以便我可以使用相同配置但使用不同Jobs部署多个Jenkins实例。

    2.4K10

    写给那些想使用 JFrog Artifactory 管理制品的人

    Artifactory 首页介绍 ? 页面顶部 你可以看到这个 Artifactory 已经服务了超过 5000 件制品。还可以看到 Artifactory 的当前版本号,以及最新版本。...int 表示 integration(集成),比如从 Jenkins 里成功构建制品将首先放在这个存储库下,如果构建失败,它将不会被上传到 Artifactory。...这个分支通过 Jenkins 第 1 构建成功后,它首先会被 team1-generic-int-den 仓库下 ART/feature/ART-1234/1/ 目录下面,如果进行第 2 次构建,并成功...仓库下去获取构建并进行测试。...在这个过程中,就像使用漏斗一样将构建通过层层筛选, int 仓库到 stage 仓库,最后到 release 仓库完成了制品发布。

    5.2K41

    解决 Jenkins 性能缓慢问题

    克服常见 Jenkins 性能问题 随着时间推移,构建频率增加、并行运行多个作业以及构建复杂性增加可能会导致 Jenkins 出现性能问题。...此外,不要设置可能在周期中任何地方失败长时间构建,记住将构建分解为多个较小作业。 2.4 轻松管理代理 在设置 Jenkins 时,正确设置代理很重要。...使用具有通用性代理也是一个好主意;一个代理应该运行多个不同作业并最大限度地利用资源。 2.5 删除构建历史 一段时间后,Jenkins 构建可能会堆积起来,磁盘消耗可能会失控。...也可以通过 Jenkins 命令行手动删除构建,或者使用定期清理旧构建cron 作业。...通过检查changelog来查看Jenkins 是否添加了对这个特性原生支持。您可能必须升级 Jenkins 才能获得最新功能,但这通常是提高性能好主意。

    4.3K20

    制品库 Jfrog Artifactory 搭建私服

    下载完了是一个 zip 压缩包,例如下载最新版本jfrog-artifactory-oss-7.35.2-windows.zip。...C:\jenkins\artifactory-oss7\app\misc\db 找到相关建库脚本,例如 MySQL 数据库建库脚本createdb_mysql.sql CREATE DATABASE...远程仓库:Artifactory 仓库支持代理公网或内网二进制软件制品仓库(Artifactory, Nexus,Harbor等),按需获取后在本地进行缓存,可大幅度提升构建效率 本地仓库:Artifactory...本地仓库中软件制品通常都带有丰富元数据,并且通过基于角色访问控制(RBAC)实现资源隔离 虚拟仓库:为满足制品管理多团队协作需求,虚拟仓库通过打包任意数量远程仓库和本地仓库,暴露唯一访问入口方式...,将制品提供者和消费者之间耦合度降到最低,提升协作效率 分发仓库:分发仓库通过JFrog Bintray SaaS服务满足软件制品公网分发需求,提供默认全球CDN加速服务 点击 Create Remote

    2K10

    CICD:基于K8s弹性资源池配置【第二步】编写Pipeline脚本实现自动化

    上一篇文章 CI/CD:基于K8s弹性资源池配置【第一步】自动化创建JenkinsAgent节点 我们通过运行Jenkins Groovy脚本来增加了一个Jenkins Agent节点。...那么现在思考一个问题,弹性构建实现方式有多种, 如果我们实现方式是: 运行Pipeline作业时启动一个Jenkins Agent 节点,然后作业结束后回收此节点。 该如何实现?...大概步骤: 创建Jenkins Agent; 获取Jenkins Agent参数; 渲染yaml模板; 调用K8s API在固定NS中创建一个Pod; 调度Jenkins pipeline到agent...(还记得上篇文章中提到一个关于序列化问题,这次我们通过ScriptConsole 来解决) 实现思路 也就是说我们将上篇文章写groovy脚本,存储到SharedLibrary中,然后调用ScriptConsole...这里注意: 需要通过Crumb API获取value,并添加到HTTP request中header中。 使用Jenkis用户名和API token进行认证。

    92120

    Jenkins使用Groovy Post+Upload to pgyer+钉钉机器人实现通知

    1.1 准备 我们要提前准备以下内容: 安装 Groovy Post 插件。(可以通过jenkins插件市场进行搜索) 安装 Upload to pgyer插件。...(可以通过jenkins插件市场进行搜索) 蒲公英账户,并得到APIKey 。(可以通过 后台页面头像点击,弹出菜单中,选择API信息。...都是蒲公英在将插件返回得到数据,设置为全局变量。我们可以通过${名称}进行获取相关配置值哦 在下面,有详细介绍返回各种参数信息。...(其实也是作者封装了一个groovy脚本而已。) 两种方法各有千秋。通过groovy脚本比较简单和清晰而已。 执行发送前提,需要我们在钉钉群里面创建了一个自定义机器人。...我们在具体调用时候,只会显示机器人名称。 webhook :钉钉群里面获取 安全设置中关键字,加密(就是加签参数值)。

    1.4K10

    Pipeline As Code With Jenkins2.0

    所谓Pipeline,简单来说,就是一套运行于Jenkins工作流框架,将原本独立运行于单个或者多个节点任务连接起来,实现单个任务难以完成复杂发布流程 Pipeline实现方式是一套Groovy...DSL(类似Gradle),任何发布流程都可以表述为一段Groovy脚本,并且Jenkins支持代码库直接读取脚本,从而实现了Pipeline as Code理念。...更灵活并行执行,更强依赖控制,通过groovy脚本可以实现step,stage间并行执行,和更复杂相互依赖关系。 可扩展性:通过groovy编程更容易扩展插件。...一个典型Stage View如下图所示: 图中可以十分方便地看到哪些Stage通过,哪些Stage失败,以及构建时间。...Jenkins2.0Pipeline搭建使用Groovy脚本,通过Groovy脚本实现工作流管理步骤如下: 去Jenkins主界面建立Pipeline任务 实际上更常用是MultiBranch

    2.1K90

    Jenkins扩展共享库进阶

    、类库等与构建相关具体操作; 由于一旦流水线步骤及变量确定一般就不会改动了,而扩展共享库方法等具体操作实现我们可以以代码方式放入远程版本中,修改提交后Jenkinsfile构建自动加载共享库,获取最新构建修改...下面我们对多分支流水线、扩展共享库结合实现Vue项目的发版、回滚来具体讲解下扩展共享库使用。 注:多分支流水线可以有效将多个分支放到一个项目下统一管理,避免因分支导致项目分散。...此时是无法通过GIT_PREVIOUS_SUCCESSFUL_COMMIT变量来获取上一次版本,因此只能将其写入文件存放。 (2)打包 通过npm 打包vue项目生成dist。...3.分发更新 Jenkins通过sshpublisher将版本包dist_temp.zip 分发到远程web服务器上,通过rsync对项目目录dist进行更新,最后销毁dist_temp.zip。...-f commitid ];then echo 0 > commitid fi #commitid获取上次版本id previous_id

    2K20

    1分钟将你jenkins构建环境迁移到K8S集群上

    性能瓶颈,偶尔有slave节点内存泄漏问题 将Jenkinsslave节点部署到K8S原理 K8S有pod概念,一个pod内可以有多个container。...,如jdk版本,maven版本等,所以该环境最好交由制品库管理,推荐使用Artifactory记录构建过程。...建议使用Artifactory管理构建过程中元数据。 8.png 最佳实践 1....业务部门通过jenkins共享库特性调用git仓库中构建模版,传入所需构建环境和源码路径以及其他变量进行构建任务设置 10.png 4....这样就可以做到,开发人员无需学习复杂groovy语法编写pipeline;管理人员可以标准化构建流程,并收集所有质量关卡数据,并会写到统一制品仓库管理。

    1.3K40

    DevOps is Hard、DevSecOps is Even Harder. --- Enterprise Holdi

    持续集成工具链包括:git、maven、gradle、Artifactory、Bitbucket、BlackDuck、jenkins 持续交付工具包括:Ansible、jenkins、Bitbucket...我们需要保证所有人都能应用我们平台,并且保障平台实时可用,为此我们在jenkins上面使用groovy开发了很多pipeline模版、自动化脚本、jenkinsfile等供其他团队使用。...在我们CD体系中ansible负责了大量工作,我们使用jenkins去管理我们发布流程、并通过ansible去执行发布任务,最重要是,我们收集了部署中数据(如发布环境、发布时间、测试结果等等...Jenkins会按照这些事先定义好清单来进行发布 ,并收集到过程中问题、哪个stage失败、是否影响到了其他任务等等。并把这些问题同步到pipeline中以及Artifactory元数据上。...我们给了所有开发者对jenkins只读权限,这样可以确保所有的相关开发者都可以看到这些问题,并及时对问题进行修复。我们通过这种方式,把一次发布由4小时缩减到1小时。

    45820

    持续集成:Jenkins Pipeline 邮件通知

    一、背景 上次我们讲解了如何离线部署 Jenkins,这次我们要看看在部署完之后,如何将部署结果通过邮件形式发送出来。...2.5 邮件通知结果 下图是通过部署流水线任务发送邮件通知。 我们可以安装另外一个比较强大邮件通知插件,来支持读取邮件模板。...邮件内容是 groovy-html.template 模板文件中读取并渲染 HTML 内容。 邮件格式是 HTML,可以包含丰富样式和布局。 额外发送给 xxx@xxx.com.cn。...使用自定义脚本(未与此插件一起打包脚本)需要 Jenkins 管理员配合。步骤相对简单: 创建 Groovy 脚本模板。脚本名称以该语言标准扩展名结尾(即.groovy)。模板可以任意命名。...email.html"}''' 完整 pipeline 脚本如下: pipeline { agent any stages { stage('获取最新代码

    41110

    Jenkins常见问题集锦(二)

    问题7:在共享库里面写stage,能不能显示在Blue Ocean界面上? 参考:可以。 问题8:怎么看JenkinsGroovy版本?...参考:可以在${JENKINS_HOME}/war/WEB-INF/lib目录下面找到groovy对应jar包。jar包名称上可以看到版本号。...问题9:Jenkins pipeline在一个stage里面执行bat指令,里面set一个变量,有办法在下一个stagebat指令里获取这个变量吗?...通过groovy插值可以在bat里面获取groovy定义变量,但能保存bat里面的变量到groovy吗?...参考:set定义变量,本次bat命令结束生命周期就结束了,无法在下一个stagebat命令里获取。就算是同一个stage,分开写2个bat命令,后一句也不能获取到前一句定义变量值。

    87540
    领券