Jenkins 中文社区 https://jenkins-zh.github.io/ Recent content on Jenkins 中文社区 Hugo -- gohugo.io zh-CN Sat, 05 Jan 2019 22:56:04 +0800 行为规范 https://jenkins-zh.github.io/about/code-of-conduct/ Mon, 01 Jan 0001 00:00:00 +0000 https://jenkins-zh.github.io/about/code-of-conduct/ 留言 留言之前需要使用 GitHub 账号登陆。大家要注意文明用语,严禁攻击、诋毁、灌水、广告等无关的话。对于违反人,一经发现将会被拉入黑名单。 提问 欢迎每一位朋友在这里提出与 Jenkins 或相关领域的技术问题,但是,在提问之前建议先在搜索引擎和本站中进行搜索。 问题至少要包含如下部分: 场景以及问题是如何发生的,方便阅读的人复现 软件、环境相关版本信息 日志、截图等(建议使用附件的方式) 出于对回答问题者的尊重,请得到解决方案后及时表示感谢,或者从其他地方得到答案后添加相关链接以及说明。 GitHub 请您使用同一个 GitHub 账号来与大家交流,不欢迎使用所谓的“小号”。 如何参与 https://jenkins-zh.github.io/about/how-to-involve/ Sat, 05 Jan 2019 22:56:04 +0800 https://jenkins-zh.github.io/about/how-to-involve/ 参与开源社区真的不只有 Coding 一条路可选。只要你认同“开源”,有热情,就可以!任何岗位、校大学生、甚至”不懂”技术都能够加入我们。走过路过的朋友们别错过,下面的参与方式总有一种能把你带上开源事业的“不归路”,如果真的没有包含你希望的参与方式,也可以从现在就发起一个 Pull Request 开始: Jenkins 本地化 Jenkins 中文官网 有很多的 翻译任务 需要各路英雄自由领取。无规矩不成方圆,在享受自由的同时,也请牢记如下几点: 认真、负责第一位 翻译任务通常不建议超过两周 翻译规范 翻译包括 Jenkins 官网的本地化,以及 博客 的翻译。翻译完成后,提交 Pull Request 并等待 Review。对于质量较高、或者适合在微信公众号上发布的文章,需要另外提交一个 Pull Request 。 Jenkins 的 简体中文语言插件 也热切地期待你的 Pull Request 。 分享 你可以在本站或者 Mettup 上分享你在使用 Jenkins 或者相关技术时总结的经验、教训、成果等。 维护本站点 你可以从了解本站的架构开始。小到错别字修正,大到站点风格、架构完善都需要你的参与。 交流 https://jenkins-zh.github.io/about/channels/ Fri, 04 Jan 2019 21:13:30 +0800 https://jenkins-zh.github.io/about/channels/ 为了方便各位 Jenkins 的爱好者、用户以及贡献者之间互相交流,我这里列出来一些途径: 邮件组 在本站留言 邮件组 Jenkins 社区有很多 邮件组 ,感兴趣的童鞋请自行翻阅。本文仅介绍中文相关的邮件组: Jenkins 中文用户邮件组 查看历史 订阅 取消订阅 Jenkins 中文本地化兴趣邮件组 查看历史 订阅 取消订阅 注意:点击上面的订阅或者取消都应该会弹出一个发送邮件的窗口,请不要做任何修改,邮件正文保持空白(不要添加邮件签名等内容)直接发送即可。邮件发送成功后,会收到确认的回复。鉴于邮件组是由 Google 提供的服务,无法科学上网的童鞋是无法查看历史邮件的。 留言 本站的留言系统建立在 Github 提供的 Issues 上。欢迎大家在遵守社区行为规范的基础上积极地留言互动。 2018年 Jenkins 国内使用情况调查问卷 https://jenkins-zh.github.io/wechat/articles/2018-12-19-jenkins-survey/ Mon, 01 Jan 0001 00:00:00 +0000 https://jenkins-zh.github.io/wechat/articles/2018-12-19-jenkins-survey/ 近年来,在数字化转型的压力之下,以 DevOps 和微服务为代表的云原生技术,作为企业数字化转型的重要支撑,活跃于开源技术的舞台。 而 DevOps 作为一种理念,落地交付必然离不开 CI/CD 等工具的支持。 Jenkins 在此方面的重要作用,相信大家也是有目共睹。Jenkins 之所以深受国内用户的喜爱,不仅因为它开源免费、功能强大、插件众多,其背后社区的开放、包容和活跃,更是其生命力之所在! 在新的一年里, Jenkins 社区希望能够更好地推广和传播这项技术,使越来越多的 Jenkins 中文用户能在实际工作中体会它的魅力。正因如此,我们发起了 “2018年 Jenkins 国内使用情况调查问卷”,希望通过这份问卷的互动,我们能够更加清晰 Jenkins 社区2019年的发展方向。 请扫一扫下面的二维码,或者在微信中长按识别,完成下面的问卷。只需要占用您大概1~2分钟的时间。 问卷有效时间,从 2018年12月19日 到 2019年1月9日 截止。 另外,还有两则好消息与大家分享。 第一则好消息是 Jenkins 中文站点已经正式上线,大家可以在上面找到入门教程、使用案例以及优秀的技术博客,我们会不断完善相关文档和教程。当然,无论是贡献文档、代码,还是其他任何形式的贡献,非常欢迎大家参与其中。从来没有参与过开源项目的朋友也不用担心,可以通过微信公众号留言给我们,志同道合的小伙伴们会主动与你联系,助你一同踏入精彩的开源世界。 另一则好消息是我们将通过此官方微信公众号,陆续推出 Jenkins 相关系列视频,由浅入深地为使用者们介绍 Jenkins 相关知识及使用经验。对于“如何构建特定语言的项目”、“如何在 Kubernetes 集群中更好地利用 Jenkins ”以及“如何排查问题”等大家感兴趣的热门话题,都可以从这些视频中得到经验分享。 最后,欢迎订阅 Jenkins 中文邮件组与我们进行交流和互动。衷心希望能够通过更多小伙伴的加入,不断完善开源社区氛围,深度技术互动,协力共建一个更加开放、更加包容、更加活跃的 Jenkins 社区! 有内容、有态度的 Jenkins 社区,期待有你同行! Custom WAR Packager https://jenkins-zh.github.io/wechat/articles/2018-12-5-custom-war-packager/ Mon, 01 Jan 0001 00:00:00 +0000 https://jenkins-zh.github.io/wechat/articles/2018-12-5-custom-war-packager/ 我打算给 Jenkins 管理员和开发者介绍一个新的工具 Custom WAR Packager。该工具可以打包 Jenkins 的自定义 WAR 发行版、 Docker 镜像和 Jenkinsfile Runner 包。 它可以打包 Jenkins、插件以及配置为开箱即用的发行版。 Custom WAR Packager 是我们在博客 A Cloud Native Jenkins(/blog/2018/09/12/speaker-blog-a-cloud-native-jenkins/) 中介绍过的无状态 Jenkins master 工具链的一部分。这个工具链已经在 Jenkins X 中被使用,用于构建 serverless 镜像(https://github.com/jenkins-x/jenkins-x-serverless)。 在这篇文章中,我将会介绍几种 Custom WAR Packager 常见的使用场景。 == 历史 正如 Jenkins 本身一样,Custom WAR Packager 开始于一个小的开发工具。在 Jenkins 内运行集成测试很长时间以来都是一个难题。 对此,我们有三个主要的框架: Jenkins Test Harness, Acceptance Test Harness, 和 Plugin Compatibility Tester. 这些框架都需要一个 Jenkins WAR 文件来运行测试。但是假如你想在类似 AWS 一样的自定义环境中进行 Jenkins 测试呢? 或者,你希望基于 Pluggable Storage 的环境也可以复用 Jenkins 流水线测试,来确保没有回归缺陷? Docker Hub 上的官方 Jenkins 镜像 https://jenkins-zh.github.io/wechat/articles/2018-12-26-official-docker-image/ Mon, 01 Jan 0001 00:00:00 +0000 https://jenkins-zh.github.io/wechat/articles/2018-12-26-official-docker-image/ 目前,在 Docker Hub 上有三个不同的仓库正(或曾经)被当作“官方” Jenkins 镜像。 本文是为了申明哪个是当前的官方镜像(截至2018年12月). 官方的 docker pull jenkins/jenkins 例如:https://hub.docker.com/r/jenkins/jenkins/ 是正确的仓库。 在我的博客 对于使用 Jenkins 官方 Docker 镜像推荐的方法 上也有一些记录。 废弃的 jenkins 已经废弃了很久。 我们停止使用和更新该镜像的简短原因是,我们每次发版时都需要人工参与。 jenkinsci/jenkins 同样已经废弃了很久,但为了过渡,我们会同时更新 jenkins/jenkins(正确的那个) 和 jenkinsci/jenkins。 2018年12月初,我们停止更新 jenkinsci/jenkins(如果您感兴趣的话,查看 INFRA-1934 可以获取更多详情)。 感谢您的阅读! Jenkins Area Meetup https://jenkins-zh.github.io/about/meetups/ Mon, 01 Jan 0001 00:00:00 +0000 https://jenkins-zh.github.io/about/meetups/ 我们欢迎每一位愿意一起合作、组织的个人、企业、社区,形式包括但不局限于: 案例、经验分享 工作坊,实际操作演练 活动拍照、录像 茶歇、场地赞助 礼品、奖品赞助 下面是目前收集到的,在国内组织过 Meetup 的城市。 北京 上海 西安 杭州 成都 深圳 广州 Jenkins Configuration-as-Code: 看,我都不用手动配置 https://jenkins-zh.github.io/wechat/articles/2018-12-12-gasc/ Mon, 01 Jan 0001 00:00:00 +0000 https://jenkins-zh.github.io/wechat/articles/2018-12-12-gasc/ NOTE: 这篇文章是 Configuration-as-Code 系列的第一部分。 Jenkins 非常灵活,如今已成为实现 CI/CD 的事实标准,同时拥有一个活跃的社区来维护几乎所有工具和用例的插件。但是灵活也是要付出代价的:除了 Jenkins 核心之外,许多插件需要一些系统级别的设置才能正常工作。 在某些情况下,“Jenkins 管理员”是一个全职职位。 Jenkins 管理员在负责维护基础设施的同时,还要为一个巨大的 Jenkins master 提供数百个已安装的插件和数千个托管作业。 维护最新的插件版本是一项挑战,故障转移(failover)也会是一场噩梦。 这就像几年前系统管理员必须要为每个服务管理特定的机器一样。 在 2018 年,通过使用基础架构自动化工具和虚拟化,一切都可以作为代码进行管理。 需要一个新的应用服务器作为你的应用的暂存环境吗?那你只需要部署一个 Docker 容器。 基础设施缺少资源吗?那就在你喜欢的云服务上分配更多资源来使用 Terraform。 在这种情况下,Jenkins 管理员的角色怎么样?他们是否还要花费数小时来点击网页表单上的复选框?也许他们已经采用了一些自动化、依赖于 Groovy 脚本或一些自己写的 XML 模板。 今年早些时候我们发布了第一个 alpha 版本的 “Jenkins Configuration-as-Code” (JCasC),它是一种基于 YAML 配置文件和自动模型发现的 Jenkins 配置管理新方法。”JCasC” 已经升级为顶级 Jenkins 项目。 同时,对应的 Jenkins 增强提案已经被接受。 JCasC 能为 Jenkins 管理员做些什么? JCasC 允许我们在启动时或通过 web UI 按需在 Jenkins master 上应用一组 YAML 文件。 与 Jenkins 用于实际储存配置的详细 XML 文件相比,这些配置文件非常简洁易读。 这些文件还有用户友好的命名约定,使管理员能够轻松地配置所有 Jenkins 组件。 Jenkins 微信订阅号 https://jenkins-zh.github.io/wechat/articles/2018-11-14-first-voice/ Mon, 01 Jan 0001 00:00:00 +0000 https://jenkins-zh.github.io/wechat/articles/2018-11-14-first-voice/ Jenkins 作为 CI/CD 领域里非常有实力和生命力的平台,不但在国外有很多用户,在国内也有很多的拥趸者。大家拥抱 Jenkins,不仅仅因为它是新的方向,更因为这背后有着一个非常开放、活跃的开源社区。 为了使更多的 Jenkins 中文用户,能够及时、准确地获得来自官方的最新动态,经过社区贡献者的讨论,大家一致认为,开通 Jenkins 微信订阅号是非常必要也非常有意义的一件事情。同时,Jenkins 的创始人 Kohsuke Kawaguchi 先生对这个想法非常认同,他亲自签名并授权,对我们创建 Jenkins 微信订阅号提供了巨大的支持和鼓励。 于是,Jenkins 微信订阅号便在今天,正式与您见面了。 随着 Jenkins 订阅号的开通,我们将有更加直接的平台来与各位分享社区目前在做的一些事情。在这之前,我们早已着手进行 Jenkins 中文本地化的相关工作。目前社区贡献者主要在做的事情包括:创办并维护 Jenkins 以及 Jenkins X 的中文官网、Jenkins Core 以及插件的本地化等。 如果您愿意和其他 Jenkins 用户进行线下面对面的交流和分享,Jenkins Area Meetups(后文简称“JAM”) 将会是一个不错的选择。目前,在社区贡献者和技术爱好者的共同努力下,我们已经在北京、深圳、西安等地成功举办过多次 JAM 活动。在 JAM 上,您除了可以体验到很多有关 Jenkins 的实际应用、最新特性之外,还可以结识社区里的朋友并进行深度互动。 Jenkins 社区贡献者们秉承传播 Jenkins 技术、加强互动交流、推动 Jenkins 中文本地化的理念,将在今后定期举办多种多样的线上线下活动。我们尊重任何形式、任何规模的贡献,并热忱地欢迎新贡献者的加⼊,也欢迎您联系我们来分享您的心得、体会,或者共同举办一次 JAM 活动。Jenkins 官网对如何参与有更加详细的说明,有任何问题,欢迎大家留言给我们。 我们衷心希望,随着 Jenkins 订阅号的开通,能够与更多的小伙伴们一同在线上完善开源社区氛围、线下深度互动,努力构建一个有内容、有态度的优质技术社区。 Jenkins 的重要安全更新 https://jenkins-zh.github.io/wechat/articles/2018-12-26-security-updates/ Mon, 01 Jan 0001 00:00:00 +0000 https://jenkins-zh.github.io/wechat/articles/2018-12-26-security-updates/ 我们刚刚发布了版本 2.154 和 LTS 2.150.1 的 Jenkins 安全更新,修复了多个安全漏洞。 由于 2.150.1 是新的 LTS 中的第一个版本,而且,我们还发布了上一个 LTS 2.138.4 版本的安全更新。 这使得管理员们可以安装今天的安全修复,而不必立即升级到新的 LTS 版本。 查看 link:/security/advisory/2018-12-05[安全报告],了解有哪些被修复。 查看我们的 link:/doc/upgrade-guide/2.138/#upgrading-to-jenkins-lts-2-138-4[LTS 2.138.4 升级指导],了解影响范围。 当前修复中有关之前发布变更的部分 在八月和十月份的 Jenkins 核心安全更新中,包括一项改进,可以通过设置多个系统属性来禁用。 那些变更是 SECURITY-595 修复的重要部分,因此,我们强烈建议禁用。而且,之前发布的文档已更新。 从 Jenkins Master 扩展网络连接 https://jenkins-zh.github.io/wechat/articles/2018-12-19-scaling-network-connections/ Mon, 01 Jan 0001 00:00:00 +0000 https://jenkins-zh.github.io/wechat/articles/2018-12-19-scaling-network-connections/ Oleg Nenashev 和我今年将在旧金山的 DevOps World | Jenkins World 上,做从 Jenkins Master 扩展网络连接 的演讲。 多年来,我们一直致力于分析、优化和加强 Remoting channel, 才有了现如今 master 能够协调 agent 的活动,并且接收构建的结果。 尽管许多技术可以改进服务,比如优化代理启动器,但是想要有质的改变,只有从根本上改变传播的内容和方式。 3月,JENKINS-27035 引入了一个框架,用于检查 Remoting channel 在高级别上的通信。 以前,开发人员只能使用一般的低级工具,例如 Wireshark, 它不能精确的识别 Jenkins 负责通信的代码片段。 在过去的几个月里,Cloud Native SIG 在解决根本原因方面取得了进展。 Artifact Manager on S3 plugin 已经发布并与 Jenkins Evergreen 整合, 支持在 agent 和 Amazon 服务器之间,进行大制品的上传和下载, 源生插件允许由 agent 生成的所有构建的日志内容(例如在 steps 的 sh 中) 直接定向流到外部存储服务,如 AWS CloudWatch Logs。 与此同时也开始上传 junit 格式的测试结果,这些测试结果有时会变的很大,将直接从 agent 到存储数据库。 所有这些努力都可以减轻 Jenkins Master 和本地网络的负载,而不需要开发人员修改他们的 pipeline 脚本。 关于本站 https://jenkins-zh.github.io/about/about-site/ Mon, 01 Jan 0001 00:00:00 +0000 https://jenkins-zh.github.io/about/about-site/ Jenkins 中文社区站点是基于 Hugo 生成的静态文件,托管在 GitHub Page 上。下面列出相关的源码位置: 网站内容 网站主题 微信订阅号 回顾 2018: 革新的一年 https://jenkins-zh.github.io/wechat/articles/2018-12-25-year-in-review/ Mon, 01 Jan 0001 00:00:00 +0000 https://jenkins-zh.github.io/wechat/articles/2018-12-25-year-in-review/ 临近年终,是一个思考总结、展望全局的好时机。那就让我们暂时从日常繁复的工作中停下脚步,一起来盘点 Jenkins 在 2018 这一年的得失与喜乐。 在整个行业中,对进一步自动化的不懈追求仍在继续。我们正以前所未有的速度编写软件,与此同时,对于软件的需求似乎越来越高,我觉得越来越多的企业和高管都敏锐地意识到软件和开发者已登基为王。在底层的角度,我遇到的每个团队都认为软件交付自动化是他们的“软件工厂”的关键部分,对这些团队而言,创建、管理具有不可思议的灵活性和可视性的自动化十分重要。 自诞生14年以来,Jenkins 将继续在实现这一目标上发挥重要作用,总之,增长的步伐似乎正在加速。在这个发展飞快的行业里,成为这一成就的一份子着实让我感到自豪。 把 Jenkins 打造为每个人都会使用的工具,这具有很大的责任感。所以在 Jenkins 社区,我们一直都十分努力。事实上,在各个领域和层面上来说,*2018年是整个项目历史上最具有创新性的一年*。 随着不断发展壮大,我们亟需探索出能使更多人更好地参与其中的方法。JEPs 和 SIGs 便应运而生。2018年,我们看到了这些形式得到了巨大的吸引力。经过一年的运营,我认为我们已经学到了很多东西,希望我们会在此基础上继续改进。 这些新的形式带来了新的协作方式。例如:中文本地化 SIG运营的 微信公众号和本地化网站。平台 SIG 在 Java 11 support 中也给予了不少帮助。 我也很高兴看到新一批领导者。由于害怕遗漏一些人,所以我不打算在此一一列出,我们在今年秋天祝贺他们中的许多人作为 Jenkins 大使(请在明年提名更多人!)。那些领导关键工作的人往往是那些不熟悉这些角色的人。 一些领导者也努力发掘新的贡献者。我们正在有意识地思考,我们哪一部分的潜在贡献者没有被发掘出来,为什么没有被发掘出来。这也是任一个企业都在做的事情。同时我们也是 Google Summer of Code 和 Outreachy 参与者。 今年我们的安全流程和修复速度再次大幅提升,反映出用户对我们的信任也随之增强。例如,我们今年推出了遥测系统,通知我们更快地开发出更好的修复方案。 现在,社区改进的最重要的地方是我们为您使用的软件带来的影响。在这一方面,我认为我们在2018年做得不错,产生了我所谓的“五个超级武器” Jenkins X 可能是今年最明显的创新,使得在 Kubernetes 上创建现代云应用程序变得更加容易。这也标志着 Jenkins 社区及其使命的重大扩展。 Jenkins Configuration as Code 在今年达到了一重要的里程碑 “1.0” ,并且他继续获得更大的动力。 “Cloud Native Jenkins” 是我为新努力作的术语,把 Jenkins 转换为 Kubernetes 上大规模运行的通用 CI/CD 引擎。这里还有许多东西需要定义,但你已经可以看到如 Serverless Jenkins 这样的好东西了。 Evergreen 是另一个需要推出的新项目,它有着雄心勃勃的主题——大量地简化了 Jenkins 的使用和操作。 流水线方面的努力形成了一个新的 SIG,我期待它在2019年带来的新影响。 Jenkins 社区能够将用户可见的改变与社区的改进结合在一起,这不仅是不算秘密的秘密,也是社区不断发展的能力。 展望2019年,毫无疑问,随着我们不断地学习和实践,上述提到的事情将不断地发展、变化、融合和分裂。 在 VS Code 中校验 Jenkinsfile https://jenkins-zh.github.io/wechat/articles/2018-11-21-validate-jenkinsfile/ Mon, 01 Jan 0001 00:00:00 +0000 https://jenkins-zh.github.io/wechat/articles/2018-11-21-validate-jenkinsfile/ 在日常工作中,我经常需要创建或修改很多 Jenkinsfile,有时还会发生错误。这是一个非常繁琐的流程——修改 Jenkinsfile,提交、推送,然后等 Jenkins 提醒你少加了一个括号。 Command-line Pipeline Linter(https://jenkins.io/doc/book/pipeline/development/) 可以有效地减少编写 Jenkinsfile 所需要的调试时间,但是它也有一些不方便的地方。你需要使用像 curl 或 ssh 的工具来连接你的 Jenkins,还需要正确地记住验证 Jenkinsfile 的命令。尽管如此,对我来说,这个方案还是不尽如人意。 鉴于每天都会使用 VS Code,于是我开始着手为此研发插件,使得校验 Jenkinsfile 变得更加友好。 Jenkins Pipeline Linter Connector 的作用就是,把当前打开的文件推送到你的 Jenkins,然后在 VS Code 中显示校验结果。 你可以在 VS Code 插件浏览器中或通过下面的地址找到该插件 https://marketplace.visualstudio.com/items?itemName=janjoerke.jenkins-pipeline-linter-connector 。 该插件会在 VS Code 中添加四个配置选项,你必须要使用这些选项来配置用于验证的 Jenkins。 jenkins.pipeline.linter.connector.url 是 Jenkins 期望的 POST 请求地址,包含你要校验的 Jenkinsfile 文件。通常为 *http:///pipeline-model-converter/validate*。 jenkins.pipeline.linter.connector.user 允许指定你的 Jenkins 用户名。 jenkins.pipeline.linter.connector.pass 允许指定你的 Jenkins 密码。 jenkins.pipeline.linter.connector.crumbUrl 当你的 Jenkins 启用了 CRSF 时必须指定。通常为 *http:///crumbIssuer/api/xml?xpath=concat(//crumbRequestField,%22:%22,//crumb)*。 ​ 在安全防火墙内通过 WebHook 触发构建 https://jenkins-zh.github.io/wechat/articles/2019-01-07-webhook-firewalls/ Mon, 01 Jan 0001 00:00:00 +0000 https://jenkins-zh.github.io/wechat/articles/2019-01-07-webhook-firewalls/ 在这篇文章中,我将向大家展示,如何让运行在防火墙内的 Jenkins 依然可以实时地收到 GitHub 的 WebHook。当然,你也可以把这个方法应用到如 BitBucket、 DockerHub 或任何可以推送 WebHook 的其他服务中。但是,下面的步骤仅适用于托管在 GitHub 上的项目。 什么是 WebHook 简单地描述下什么是 WebHook:事件消息(通常是 JSON,也可以是其他的)由服务端以 HTTP(S) 协议发送到监听的客户端。 事件流自左到右,Jenkins 会监听类似 /github-webhook/ 或 /dockerhub-webhook/ 等路径上的 HTTP 请求,唤醒并执行一些任务。 GitHub 或 BitBucket 可能会报告一个新的提交或 PR,DockerHub 报告一个上游的镜像发生了变更。这些事情的共同之处在于,它们会推送给 Jenkins,并期待可以推送成功(例如:可以访问到 Jenkins)。在网络是开放的情况下时,例如 GitHub 企业版 或 Jenkins 在监听公网时,这是可以正常工作的。 内网环境 当有东西挡在中间时,也就是防火墙: (_按照行业标准,所有防火墙都必须能起到屏障的作用。因此,无论如何,请不要在你的组织内搞破坏_) 当你在笔记本电脑上运行 Jenkins 并希望从 GitHub 接收 WebHook 时,这也是一样的。可能是为了测试你的设置,也可能是为了在 Mac 上运行 iOS 版本构建,又或者是部分网络没有暴露在互联网中,这都是合理的。 除非你的笔记本电脑可以让整个互联网访问到(这当然不太可能),或者你的网络配置得恰到好处,否则网络连接将无法流动,此时 WebHook是不可用的。 没关系,我们可以退而求其次,使用轮询变更的方式。只是这样很糟糕。你会用尽 API 配额,还无法实时地获取变更,这真的不是一个好方法。 问题可能也是机会 我们可以解决这个问题,但也可以把这个视为一个机会。有的东西在互联网中不可访问,或者以某些默认的方法锁定是一个特色,不是一个 Bug。你可以很大程度上减少你的攻击面,同时可以进行深度防护: 一个 WebHook 转发服务 输入 link:https://smee.io/[Smee] 这个很容易记住的名字。这是一个由 GitHub 提供的 link:https://github. 自动更新、易于使用的 Jenkins https://jenkins-zh.github.io/wechat/articles/2019-01-09-jenkins-evergreen/ Mon, 01 Jan 0001 00:00:00 +0000 https://jenkins-zh.github.io/wechat/articles/2019-01-09-jenkins-evergreen/ 当我第一次 写 Jenkins Evergreen 相关的文章 , 后来被称为 “Jenkins Essentials”,我提到的一系列的未来的发展在接下来的几个月里已经变成了 现实 。 今年在旧金山举办的 DevOps World - Jenkins World 会议上,我会介绍 Jenkins Evergreen 背后哲学的更多细节,展示我们已经做了什么,并且讨论这个激进的 Jenkins 发行版的走向。 正如我在第一篇博客以及 JEP-300 中所讨论的 Jenkins Evergreen 的前两大支柱是我们关注的要点. 自动更新的发行版 不出所料, 实现安全、自动地更新Jenkins发行版(包括核心和插件)所需的机制需要很多的工作。在 Baptiste 的演讲中 他将讨论如何使 Evergreen “走起来”,而我会讨论 为何 自动更新的发行版很重要。 持续集成和持续交付变得越来越普遍,并且是现代软件工程的基础 ,在不同的组织当中有两种不同的方式使用 Jenkins 。在一些组织当中,Jenkins 通过 Chef ,Puppet 等自动化工具有条不紊的被管理和部署着。然而在许多其他组织当中, Jenkins 更像是一个 设备 ,与办公室的无线路由器不同。当安装完毕,只要它能继续完成工作,人们就不会太多的关注这个设备。 Jenkins Evergreen 发行版通过确保最新的功能更新,bug 修复以及安全性修复始终能安装到 Jenkins 当中,“让 Jenkins 更像是一个设备”。 除此之外, 我相信 Evergreen 能够向一些我们现在没有完全服务的团队提供良好的服务:这些团体希望能够以 服务 的形式使用 Jenkins 。我们暂时没有考虑提供公有云版本的 Jenkins 。我们意识到了自动接收增量更新,使用户可以在无需考虑更新 Jenkins 的情况下进行持续开发的好处。