提交 eb1cafd8 编写于 作者: LinuxSuRen's avatar LinuxSuRen

Auto commit by hugo-plugin.

上级 af563233
此差异已折叠。
......@@ -247,7 +247,7 @@ var trackOutboundLink = function(id, url) {
</a>
<a href="https://jenkins-zh.cn/about/code-of-conduct/" class="dib f6 pl1 hover-bg-light-gray br-100" title="行为规范 ">
<a href="https://jenkins-zh.cn/about/about-event-planning/" class="dib f6 pl1 hover-bg-light-gray br-100" title="活动策划 ">
<svg class="fill-current" height="30px" viewBox="0 0 24 24" width="30px" xmlns="http://www.w3.org/2000/svg">
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>
<path d="M0 0h24v24H0z" fill="none"/>
......
......@@ -220,7 +220,7 @@ var trackOutboundLink = function(id, url) {
<a href="https://jenkins-zh.cn/about/branching-strategy/" class="dib f6 pr1 hover-bg-light-gray br-100" title="分支策略">
<a href="https://jenkins-zh.cn/about/about-event-planning/" class="dib f6 pr1 hover-bg-light-gray br-100" title="活动策划">
<svg class="fill-current" height="30px" viewBox="0 0 24 24" width="30px" xmlns="http://www.w3.org/2000/svg">
<path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
<path d="M0 0h24v24H0z" fill="none"/>
......
......@@ -38,7 +38,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/about/" />
<meta property="og:updated_time" content="2019-07-09T19:56:04&#43;08:00"/>
<meta property="og:updated_time" content="2019-07-31T00:00:00&#43;00:00"/>
<meta itemprop="name" content="关于我们">
<meta itemprop="description" content="有关于 Jenkins 中文社区相关介绍">
......@@ -241,15 +241,15 @@ var trackOutboundLink = function(id, url) {
<h1 class="near-black f3">
<a href="/about/branching-strategy/" class="link primary-color dim">分支策略</a>
<a href="/about/about-event-planning/" class="link primary-color dim">活动策划</a>
</h1>
<div class="lh-copy links">
推荐使用的分支策略
社区组织活动策划
<a href="/about/branching-strategy/" class="f6 mt2 db link primary-color dim">
<a href="/about/about-event-planning/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
......@@ -268,15 +268,15 @@ var trackOutboundLink = function(id, url) {
<h1 class="near-black f3">
<a href="/about/plugins/" class="link primary-color dim">插件列表</a>
<a href="/about/branching-strategy/" class="link primary-color dim">分支策略</a>
</h1>
<div class="lh-copy links">
Jenkins 中文社区维护的插件
推荐使用的分支策略
<a href="/about/plugins/" class="f6 mt2 db link primary-color dim">
<a href="/about/branching-strategy/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
......@@ -295,15 +295,15 @@ var trackOutboundLink = function(id, url) {
<h1 class="near-black f3">
<a href="/about/social-media/" class="link primary-color dim">社交媒体</a>
<a href="/about/plugins/" class="link primary-color dim">插件列表</a>
</h1>
<div class="lh-copy links">
Jenkins 中文社区的社交媒体
Jenkins 中文社区维护的插件
<a href="/about/social-media/" class="f6 mt2 db link primary-color dim">
<a href="/about/plugins/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
......@@ -322,15 +322,15 @@ var trackOutboundLink = function(id, url) {
<h1 class="near-black f3">
<a href="/about/star-plan/" class="link primary-color dim">社区贡献激励方案</a>
<a href="/about/social-media/" class="link primary-color dim">社交媒体</a>
</h1>
<div class="lh-copy links">
激励可以让社区活动更有趣
Jenkins 中文社区的社交媒体
<a href="/about/star-plan/" class="f6 mt2 db link primary-color dim">
<a href="/about/social-media/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
......@@ -349,15 +349,15 @@ var trackOutboundLink = function(id, url) {
<h1 class="near-black f3">
<a href="/about/how-to-involve/" class="link primary-color dim">如何参与</a>
<a href="/about/star-plan/" class="link primary-color dim">社区贡献激励方案</a>
</h1>
<div class="lh-copy links">
参与 Jenkins 中文社区的具体步骤
激励可以让社区活动更有趣
<a href="/about/how-to-involve/" class="f6 mt2 db link primary-color dim">
<a href="/about/star-plan/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
......@@ -376,15 +376,15 @@ var trackOutboundLink = function(id, url) {
<h1 class="near-black f3">
<a href="/about/channels/" class="link primary-color dim">交流</a>
<a href="/about/how-to-involve/" class="link primary-color dim">如何参与</a>
</h1>
<div class="lh-copy links">
Jenkins 中文社区交流指南
参与 Jenkins 中文社区的具体步骤
<a href="/about/channels/" class="f6 mt2 db link primary-color dim">
<a href="/about/how-to-involve/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
......@@ -403,15 +403,15 @@ var trackOutboundLink = function(id, url) {
<h1 class="near-black f3">
<a href="/about/course/" class="link primary-color dim">Jenkins 培训</a>
<a href="/about/channels/" class="link primary-color dim">交流</a>
</h1>
<div class="lh-copy links">
Jenkins 培训大纲
Jenkins 中文社区交流指南
<a href="/about/course/" class="f6 mt2 db link primary-color dim">
<a href="/about/channels/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
......@@ -430,15 +430,15 @@ var trackOutboundLink = function(id, url) {
<h1 class="near-black f3">
<a href="/about/meetups/" class="link primary-color dim">Jenkins Area Meetup</a>
<a href="/about/course/" class="link primary-color dim">Jenkins 培训</a>
</h1>
<div class="lh-copy links">
Jenkins 中国本地活动
Jenkins 培训大纲
<a href="/about/meetups/" class="f6 mt2 db link primary-color dim">
<a href="/about/course/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
......@@ -457,15 +457,15 @@ var trackOutboundLink = function(id, url) {
<h1 class="near-black f3">
<a href="/about/about-site/" class="link primary-color dim">关于本站</a>
<a href="/about/meetups/" class="link primary-color dim">Jenkins Area Meetup</a>
</h1>
<div class="lh-copy links">
本站的架构
Jenkins 中国本地活动
<a href="/about/about-site/" class="f6 mt2 db link primary-color dim">
<a href="/about/meetups/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
......@@ -482,6 +482,49 @@ var trackOutboundLink = function(id, url) {
<ul class="pagination">
<li class="page-item">
<a href="/about/" class="page-link" aria-label="First"><span aria-hidden="true">&laquo;&laquo;</span></a>
</li>
<li class="page-item disabled">
<a href="" class="page-link" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a>
</li>
<li class="page-item active"><a class="page-link" href="/about/">1</a></li>
<li class="page-item"><a class="page-link" href="/about/page/2/">2</a></li>
<li class="page-item">
<a href="/about/page/2/" class="page-link" aria-label="Next"><span aria-hidden="true">&raquo;</span></a>
</li>
<li class="page-item">
<a href="/about/page/2/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
</li>
</ul>
</div>
......
......@@ -6,7 +6,7 @@
<description>Recent content in 关于我们 on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Tue, 09 Jul 2019 19:56:04 +0800</lastBuildDate>
<lastBuildDate>Wed, 31 Jul 2019 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/about/index.xml" rel="self" type="application/rss+xml" />
......@@ -24,6 +24,21 @@
GitHub 请您使用同一个 GitHub 账号来与大家交流,不欢迎使用所谓的“小号”。</description>
</item>
<item>
<title>活动策划</title>
<link>https://jenkins-zh.cn/about/about-event-planning/</link>
<pubDate>Wed, 31 Jul 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/about/about-event-planning/</guid>
<description>本文讨论社区组织 meetup 、workshop 等活动策划的参考指引,方便社区其他地区组织者及志愿者借鉴使用。
活动策划分为以下几步骤: - 活动地区及组织者确定 - 招募志愿者 - 活动任务分工认领 - 活动宣传
1、活动地区及组织者确定 组织者需向 Jenkins 中文社区申请活动组织者得到许可后,才可以进行后续步骤。 - 确定活动地区 - 确定活动主题 - 确定大概活动日期
2、招募志愿者 组织者可根据需要在公众号进行发布志愿者招募信息 - 活动策划志愿者 - UI 志愿者 - 现场活动志愿者
志愿者采取主动报名的方式,报名方式可分为2种: - 社区内部报名 - 公众号发布招募信息,根据招募信息中的报名方式报名
3、活动任务分工认领 活动主题确定后,如果有志愿者参与可根据下表进行任务分工认领:
任务分类 具体事项 完成情况 负责人 确认 场地 租赁与赞助、环境确认 赞助与礼品 赞助清单、礼品采购 讲师 讲师日期及演讲时长确认、ppt 收集 活动宣传 活动稿撰写、活动行及海报制作 活动议程 活动流程安排、日期提醒 场地布置 桌椅摆放、投影、白板 茶歇准备 茶歇采购、摆放 活动签到 参与者签到、礼品发放 活动拍摄 图片、视频拍摄及收集 抽奖活动 抽奖软件、抽奖环节安排 订餐安排 讲师与志愿者订餐 4、活动宣传 至少在活动举行前一个月完成活动宣传稿、活动行以及海报制作 - 首先在社区公众号发布活动通知 - 合作社区一并进行宣传 - 活动海报可在邻近活动日期进行发布 - 如果有精力可制作倒计时海报</description>
</item>
<item>
<title>分支策略</title>
<link>https://jenkins-zh.cn/about/branching-strategy/</link>
......
<!DOCTYPE html>
<html class="no-js" lang="zh-CN">
<head>
<meta charset="utf-8">
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-200.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-800.woff2" as="font" type="font/woff2" crossorigin>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>关于我们 - Jenkins 中文社区</title>
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="description" content="有关于 Jenkins 中文社区相关介绍">
<meta name="keywords" content="Jenkins 中文社区,社区相关介绍">
<meta name="viewport" content="width=device-width,minimum-scale=1">
<meta name="generator" content="Hugo 0.54.0" />
<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="https://jenkins-zh.cn/about/index.xml">
<link href='/dist/main.css' rel='stylesheet' type="text/css" /><style>
img.avatar {
width: 32px;
display: inline;
}
</style>
<meta property="og:title" content="关于我们" />
<meta property="og:description" content="有关于 Jenkins 中文社区相关介绍" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/about/" />
<meta itemprop="name" content="关于我们">
<meta itemprop="description" content="有关于 Jenkins 中文社区相关介绍">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="关于我们"/>
<meta name="twitter:description" content="有关于 Jenkins 中文社区相关介绍"/>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-4216293-5"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-4216293-5');
var trackOutboundLink = function(id, url) {
console.log("track:", id, url)
gtag('event', 'click', {
'event_category': 'outbound',
'event_label': id,
'transport_type': 'beacon',
'event_callback': function(){document.location = url;}
});
}
</script>
</head>
<body class="ma0 sans-serif bg-primary-color-light">
<nav class="bg-primary-color-dark pv4 w-100" role="navigation">
<div class="center flex-ns flex-wrap items-center justify-start mw9">
<h1 class="dim f3 lh-solid ml0-ns mr0 mr4-l mv0 pl3 pl4-ns">
<a href="https://jenkins-zh.cn/" class="link white">
Jenkins 中文社区
</a>
</h1>
<ul class="list ma0 pa0 dn dib-l">
<li class="f5 dib mr4" role="menuitem">
<a href="/wechat/" class="dim link light-silver"
>
博客
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/tutorial/" class="dim link light-silver"
>
教程
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/event/" class="dim link light-silver"
>
活动
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/partner/" class="dim link light-silver"
>
合作伙伴
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/about/" class="dim link gray "
>
关于我们
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="http://jenkins.io/zh" class="dim link light-silver"
target="_blank">
Jenkins 官网
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="10" height="10" viewBox="0 0 32 32" class="fill-current v-base" aria-label="External Link">
<path d="M25.152 16.576v5.696q0 2.144-1.504 3.648t-3.648 1.504h-14.848q-2.144 0-3.648-1.504t-1.504-3.648v-14.848q0-2.112 1.504-3.616t3.648-1.536h12.576q0.224 0 0.384 0.16t0.16 0.416v1.152q0 0.256-0.16 0.416t-0.384 0.16h-12.576q-1.184 0-2.016 0.832t-0.864 2.016v14.848q0 1.184 0.864 2.016t2.016 0.864h14.848q1.184 0 2.016-0.864t0.832-2.016v-5.696q0-0.256 0.16-0.416t0.416-0.16h1.152q0.256 0 0.416 0.16t0.16 0.416zM32 1.152v9.12q0 0.48-0.352 0.8t-0.8 0.352-0.8-0.352l-3.136-3.136-11.648 11.648q-0.16 0.192-0.416 0.192t-0.384-0.192l-2.048-2.048q-0.192-0.16-0.192-0.384t0.192-0.416l11.648-11.648-3.136-3.136q-0.352-0.352-0.352-0.8t0.352-0.8 0.8-0.352h9.12q0.48 0 0.8 0.352t0.352 0.8z"></path>
</svg>
</a>
</li>
</ul>
<div class="db dib-ns pl3"><form id="site-search-form" action="" role="search">
<fieldset class="bn ma0 pa0">
<label class="clip" for="email-address">Search</label>
<input type="search" id="search-input" class="needs-js bg-left bg-transparent bn f5 input-reset lh-solid mt3 mt0-ns pl4 pv2 w5 white"
placeholder="搜索文档" type="text"
name="email-address" value="" style="background-image:url('/images/icon-search.png');background-size:16px 16px;">
</fieldset>
</form>
</div>
<div class="list ma0 pa0 dn dib-l"></div>
<span class="absolute mt1 mt2-l pr3 right-0 top-0">
<a class="github-button needs-js link primary-color-dark" href="https://github.com/jenkins-zh/jenkins-zh/" data-size="large" data-show-count="false" aria-label="Star Jenkins WeChat GitHub">Star</a>
</span>
</div>
</nav>
<main role="main" class="content-with-sidebar min-vh-100 pb7 pb0-ns">
<div class="w-100 ph4 pb5 pb6-ns pt1 mt4 pt3-ns">
<div class="flex">
<div class="w-100 w-80-l ph0 ph4-l">
<article class="w-100 nested-copy-line-height nested-links nested-img">
<h1 class="primary-color-dark f2">
关于我们
</h1>
<div class=" mid-gray f5 f4-l">
<p>我们是由 Jenkins 社区在国内的爱好者、贡献者组成。</p>
<p>请准守我们的<a href="https://jenkins-zh.cn/about/code-of-conduct/">行为规范</a>,文明留言。</p>
</div>
</article>
<div class="flex flex-wrap">
<section class="flex-ns flex-wrap justify-between w-100">
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/about/about-site/" class="link primary-color dim">关于本站</a>
</h1>
<div class="lh-copy links">
本站的架构
<a href="/about/about-site/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
<ul class="pagination">
<li class="page-item">
<a href="/about/" class="page-link" aria-label="First"><span aria-hidden="true">&laquo;&laquo;</span></a>
</li>
<li class="page-item">
<a href="/about/" class="page-link" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a>
</li>
<li class="page-item"><a class="page-link" href="/about/">1</a></li>
<li class="page-item active"><a class="page-link" href="/about/page/2/">2</a></li>
<li class="page-item disabled">
<a href="" class="page-link" aria-label="Next"><span aria-hidden="true">&raquo;</span></a>
</li>
<li class="page-item">
<a href="/about/page/2/" class="page-link" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
</li>
</ul>
</div>
</div>
</div>
</main>
<footer class="bg-primary-color-dark ph4-ns pt4 relative w-100" role="contentinfo">
<div class="center flex-ns flex-wrap justify-between mw9 w-90">
<div class="pb3 pt4 w-100 w-50-ns">
<div class="b f3 light-gray mb3 nested-links tc">
<a href="https://github.com/jenkins-zh/jenkins-zh/graphs/contributors" target="_blank" class="link">Jenkins 社区贡献者</a> 维护<br/>
</div>
<ul class="center f6 list ma0 mv3 pa0 tc" style="display:none"><li class="dib mr3"><a href="https://github.com/jenkins-zh/jenkins-zh/issues/new" class="dim link light-gray pv2">File an Issue</a></li></ul>
<ul class="center f6 list ma0 mv4 pa0 tc">
<li class="dib mr3">
<a href="https://twitter.com/jenkinsci" target="_blank" class="dim link light-gray pv2">Twitter</a>
</li>
<li class="dib mr3">
<a href="https://www.youtube.com/channel/UC63xz3pq26BBgwB3cnwCoqQ" target="_blank" class="dim link light-gray pv2">YouTube</a>
</li>
<li class="dib mr3">
<a href="https://space.bilibili.com/433584098" target="_blank" class="dim link light-gray pv2">哔哩哔哩</a>
</li>
</ul>
</div>
<div>
<div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">优酷视频
<div>
<a href="https://i.youku.com/jenkinszh" target="_blank">
<img src="/images/youku-qrcode.png" with="100" height="100">
</a>
</div>
</div>
<div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">微信公众号
<div>
<a href="https://mp.weixin.qq.com/s/vifdduC3kRGSIMpyL03yVA" target="_blank">
<img src="https://jenkins.io/images/jenkins-wechat.png" with="100" height="100">
</a>
</div>
</div>
</div>
</div>
<div class="f7 gray mb5 mb0-ns ph3 w-100" style="display:none"> 
<p class="dib mr4">Jenkins&reg; is a registered trademark of <a href="https://www.spi-inc.org/" class="link">Software in the Public Interest, Inc.</a></p>
<p class="dib">Copyright 2018–2019 the original authors.</p>
</div>
<div class="bg-primary-color-dark bottom-0 left-0 right-0 dn-l fixed pb3 ph3 w-100"><div class="globalmenu mobilemenu pb3 dn">
<ul class="list hidden dib ph0 ma0 scrolling-touch tc">
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/wechat/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
博客
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/tutorial/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
教程
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/event/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
活动
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/partner/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
合作伙伴
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/about/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
关于我们
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="http://jenkins.io/zh" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
Jenkins 官网
</a>
</li>
</ul>
</div>
<div class="docsmenu mobilemenu pb3 dn">
<ul class="list dib ph0 ma0 scrolling-touch tc">
</ul>
</div>
<div class="flex dn-l justify-between">
<button class="js-toggle flex-auto dib dn-l f6 tc db mt4-ns ph3 pv2 link mr2 white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".globalmenu">Menu</button>
<button class="js-toggle flex-auto dib dn-l f6 tc db mt4-ns ph3 pv2 link white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".docsmenu">Docs Menu</button>
</div>
</div>
</footer>
<link href="/dist/auto-complete.css" rel="stylesheet">
<script type="text/javascript">
var baseurl = "https:\/\/jenkins-zh.cn\/";
</script>
<script src="/dist/lunr.js"></script>
<script src="/dist/autocomplete.js"></script>
<script src="/dist/jquery-3.2.1.min.js"></script>
<script src="/dist/search.js"></script>
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?6db234f713318730f0e5f6a95bdd8d47";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<script>
(function(){
var src = (document.location.protocol == "http:") ? "http://js.passport.qihucdn.com/11.0.1.js?6276dcef5c15f276644151772390c1f9":"https://jspassport.ssl.qhimg.com/11.0.1.js?6276dcef5c15f276644151772390c1f9";
document.write('<script src="' + src + '" id="sozz"><\/script>');
})();
</script>
</body>
</html>
......@@ -39,7 +39,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/" />
<meta property="og:updated_time" content="2019-07-31T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-08-05T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Jenkins 中文社区">
<meta itemprop="description" content="">
......@@ -1839,13 +1839,17 @@ RU5ErkJggg==" />
<a href="/event/beijing-2019-08-24/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/kaiyuan.jpg"></img>
<a href="/event/beijing-2019-06-22/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/ci-cd.jpeg"></img>
</a>
<a href="/event/beijing-2019-08-24/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/kaiyuan.jpg"></img>
</a>
......@@ -1863,10 +1867,6 @@ RU5ErkJggg==" />
<a href="/event/beijing-2019-06-22/" class="tile lazyload cover dib f4 ml1 mr4 bg-black relative mw-100 shadow-5">
<img width="400px" height="200px" src="/images/meetup/ci-cd.jpeg"></img>
</a>
</div>
</div>
......
......@@ -12,6 +12,19 @@
"original": "",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/",
"title": "在大型企业里维护多分支流水线",
"type": "wechat",
"date": "2019-08-05 00:00:00 +0000 UTC",
"tags": ["Jenkins", "multi-branch", "Pipeline", "remote-file"],
"description": "如果没有适当的解决方案,在大型企业可能难以创建和维护多分支流水线。",
"content": " Jenkins 是 DevOps 领域里非常好的 CI/CD 工具,它凭借其独特的功能,几乎可以满足你一切的的业务要求。其中一个独特的功能是多分支流水线(Multi-branch 流水线),可以动态配置流水线。但是,随着公司的发展,单独的多分支流水线并不能完全满足你的所有需求,特别是在涉及大型企业时,你需要考虑流水线的集中管理,治理,稳定性,限制和安全性等其他事项。因此对于具有 Jenkins 流水线的大规模 CI/CD 环境,你需要添加之前没有想到的更多功能。\n动态配置流水线 当一个开发人员创建一个新分支并将其推送到远程代码仓库时,Jenkins 会为这个新分支动态创建流水线。根据代码仓库,甚至也可以作为动态创建 Pull Request 流水线。这个动态功能在使用 Feature 分支或其他类似功能的团队中非常有用,由于本文的主题不是多分支流水线,你可以在端到端多分支流水线项目创建中找到详细信息和一些示例。\n流水线即代码 在多分支流水线中,脚本存储在项目代码仓库中,这就是“流水线即代码”的概念。此外,当你拥有小型开发人员团队或项目没有大量分支时,它非常有用。这样,开发人员可以根据需要更改流水线,将更改推送到分支,并立即看到更改生效,但对于拥有数百或数千名拥有大量项目的开发人员的大型企业而言,这种方案就完成不可行了。\n集中式库 当你的团队或项目增加时,是时候考虑一种方法,比如通过共享的的方式应该在所有项目中。从长远来看,这种“集中式库”变得非常关键,因为随着规模的扩大,流水线中出现了新的要求或变化,在这种情况下,手动更改每个流水线或脚本对管理员来说将是一场噩梦。因此,如果你在一个地方进行更改并且每个流水线都得到更新,那么拥有该集中式库将更加实用。这是 Jenkins 共享库概念的用武之地。有关详细信息,你可以访问该站点。\n即使你只有一个流水线,仍然可以使用集中式库。\n治理与稳定 如果你的团队有对 CI/CD 一定了解的开发人员,并且你确信他们不会做出重大更改或编写脚本错误导致影响环境的稳定性,那么将流水线脚本放在代码中是很好的。但是,你真的确定吗?\n有人很可能会意外删除流水线文件或者可能出现小错误,这些小错误都会影响 CI/CD 的稳定性。如果你在早期发现这些错误时很容易解决这些错误,如果没有,这些微小的变化或错误将可能比你想象的更严重的影响 CI/CD,它将被传播到不同项目中的所有分支或 tag,这会变得很难解决。\n你需要将正确的流水线脚本推送到所有分支和/或代码仓库,或是要求每个开发人员提取最新的脚本,这种类型的问题集中式库这种更高级的方式来解决,除此之外,你的环境会因为有人可能会删除 Jenkins 文件或输入一些拼写错误带来风险。\n远程文件插件 为了消除不必要的更改的风险并降低使用的库的复杂性,我们需要以某种方式将流水线脚本与项目/代码代码仓库分开,同时仍继续使用多分支流水线功能。为此,我们有远程文件插件。\n这个插件使多分支流水线能够从其他代码仓库运行/加载流水线脚本,而不是将它们放在项目/代码代码仓库中,通过这个功能,你可以拥有一个单独的代码仓库,你可以在其中放置所有流水线脚本,并且只能为你自己提供访问权限。这样,你将拥有与集中式库相同的集中式流水线脚本代码仓库。此外,你可以将流水线脚本存储在集中式库本身中。\n这个功能的好处是除了有访问权限的人之外,没有人能够在流水线脚本中进行更改。你在集中流水线脚本中所做的任何更改都将影响使用该脚本文件的所有多分支流水线。这样,你无需等待所有开发人员获取更新版本或将脚本推送到所有代码仓库上的所有分支。\n另一个好处是,如果你将集中式流水线脚本放入 BitBucket 或 GitHub 等代码仓库中,你还将拥有代码审查功能。这样,你可以与其他人共享代码仓库,同时仍可限制或查看其他人所做的更改。\n结论 在大型企业中创建 CI/CD 流水线并不容易,你需要考虑治理,限制,稳定性和安全性等概念。在此上下文中,借助 Jenkins 的其他功能,Remote File Plugin 提供了一个独特的功能,用于集中,维护和共享流水线脚本。\n有关插件的详细信息,你可以访问插件的 Wiki 页面。\n",
"auhtor": "Aytunc BEKEN",
"translator": "shenxianpeng",
"original": "https://dzone.com/articles/maintaining-multi-branch-pipelines-in-large-scale",
"poster": "./2019-08-05-jenkins-multi-branch-pipeline/cover.jped"
},
{
"uri": "https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/",
"title": "Jenkins 流水线配置历史插件介绍",
......@@ -25,6 +38,19 @@
"original": "https://jenkins.io/blog/2019/07/15/pipeline-config-history-plugin/",
"poster": "./2019-07-31-pipeline-config-history-plugin/sunset.jpg"
},
{
"uri": "https://jenkins-zh.cn/about/about-event-planning/",
"title": "活动策划",
"type": "about",
"date": "2019-07-31 00:00:00 +0000 UTC",
"tags": [],
"description": "社区组织活动策划",
"content": " 本文讨论社区组织 meetup 、workshop 等活动策划的参考指引,方便社区其他地区组织者及志愿者借鉴使用。\n活动策划分为以下几步骤: - 活动地区及组织者确定 - 招募志愿者 - 活动任务分工认领 - 活动宣传\n1、活动地区及组织者确定 组织者需向 Jenkins 中文社区申请活动组织者得到许可后,才可以进行后续步骤。 - 确定活动地区 - 确定活动主题 - 确定大概活动日期\n2、招募志愿者 组织者可根据需要在公众号进行发布志愿者招募信息 - 活动策划志愿者 - UI 志愿者 - 现场活动志愿者\n志愿者采取主动报名的方式,报名方式可分为2种: - 社区内部报名 - 公众号发布招募信息,根据招募信息中的报名方式报名\n3、活动任务分工认领 活动主题确定后,如果有志愿者参与可根据下表进行任务分工认领:\n 任务分类 具体事项 完成情况 负责人 确认 场地 租赁与赞助、环境确认 赞助与礼品 赞助清单、礼品采购 讲师 讲师日期及演讲时长确认、ppt 收集 活动宣传 活动稿撰写、活动行及海报制作 活动议程 活动流程安排、日期提醒 场地布置 桌椅摆放、投影、白板 茶歇准备 茶歇采购、摆放 活动签到 参与者签到、礼品发放 活动拍摄 图片、视频拍摄及收集 抽奖活动 抽奖软件、抽奖环节安排 订餐安排 讲师与志愿者订餐 4、活动宣传 至少在活动举行前一个月完成活动宣传稿、活动行以及海报制作 - 首先在社区公众号发布活动通知 - 合作社区一并进行宣传 - 活动海报可在邻近活动日期进行发布 - 如果有精力可制作倒计时海报\n",
"auhtor": "linan607",
"translator": "",
"original": "",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-30-jenkins-meetup/",
"title": "开源人线下见面会",
......@@ -1732,7 +1758,7 @@
"uri": "https://jenkins-zh.cn/tags/jenkins/",
"title": "Jenkins",
"type": "tags",
"date": "2019-07-31 00:00:00 +0000 UTC",
"date": "2019-08-05 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
......@@ -1784,7 +1810,7 @@
"uri": "https://jenkins-zh.cn/",
"title": "Jenkins 中文社区",
"type": "page",
"date": "2019-07-31 00:00:00 +0000 UTC",
"date": "2019-08-05 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
......@@ -1975,6 +2001,19 @@
"original": "",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/tags/multi-branch/",
"title": "Multi Branch",
"type": "tags",
"date": "2019-08-05 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
"auhtor": "",
"translator": "",
"original": "",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/tags/newcomer/",
"title": "Newcomer",
......@@ -2057,7 +2096,7 @@
"uri": "https://jenkins-zh.cn/tags/pipeline/",
"title": "Pipeline",
"type": "tags",
"date": "2019-07-31 00:00:00 +0000 UTC",
"date": "2019-08-05 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
......@@ -2144,6 +2183,19 @@
"original": "",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/tags/remote-file/",
"title": "Remote File",
"type": "tags",
"date": "2019-08-05 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
"auhtor": "",
"translator": "",
"original": "",
"poster": ""
},
{
"uri": "https://jenkins-zh.cn/tags/remoting/",
"title": "Remoting",
......@@ -2317,7 +2369,7 @@
"uri": "https://jenkins-zh.cn/wechat/",
"title": "Wechats",
"type": "wechat",
"date": "2019-07-31 00:00:00 +0000 UTC",
"date": "2019-08-05 00:00:00 +0000 UTC",
"tags": [],
"description": "",
"content": "",
......@@ -2499,7 +2551,7 @@
"uri": "https://jenkins-zh.cn/about/",
"title": "关于我们",
"type": "about",
"date": "2019-07-09 19:56:04 +0800 +0800",
"date": "2019-07-31 00:00:00 +0000 UTC",
"tags": [],
"description": "有关于 Jenkins 中文社区相关介绍",
"content": "我们是由 Jenkins 社区在国内的爱好者、贡献者组成。\n请准守我们的行为规范,文明留言。\n",
......
......@@ -6,7 +6,7 @@
<description>Recent content on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Wed, 31 Jul 2019 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Mon, 05 Aug 2019 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/index.xml" rel="self" type="application/rss+xml" />
......@@ -24,6 +24,28 @@
GitHub 请您使用同一个 GitHub 账号来与大家交流,不欢迎使用所谓的“小号”。</description>
</item>
<item>
<title>在大型企业里维护多分支流水线</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/</guid>
<description>Jenkins 是 DevOps 领域里非常好的 CI/CD 工具,它凭借其独特的功能,几乎可以满足你一切的的业务要求。其中一个独特的功能是多分支流水线(Multi-branch 流水线),可以动态配置流水线。但是,随着公司的发展,单独的多分支流水线并不能完全满足你的所有需求,特别是在涉及大型企业时,你需要考虑流水线的集中管理,治理,稳定性,限制和安全性等其他事项。因此对于具有 Jenkins 流水线的大规模 CI/CD 环境,你需要添加之前没有想到的更多功能。
动态配置流水线 当一个开发人员创建一个新分支并将其推送到远程代码仓库时,Jenkins 会为这个新分支动态创建流水线。根据代码仓库,甚至也可以作为动态创建 Pull Request 流水线。这个动态功能在使用 Feature 分支或其他类似功能的团队中非常有用,由于本文的主题不是多分支流水线,你可以在端到端多分支流水线项目创建中找到详细信息和一些示例。
流水线即代码 在多分支流水线中,脚本存储在项目代码仓库中,这就是“流水线即代码”的概念。此外,当你拥有小型开发人员团队或项目没有大量分支时,它非常有用。这样,开发人员可以根据需要更改流水线,将更改推送到分支,并立即看到更改生效,但对于拥有数百或数千名拥有大量项目的开发人员的大型企业而言,这种方案就完成不可行了。
集中式库 当你的团队或项目增加时,是时候考虑一种方法,比如通过共享的的方式应该在所有项目中。从长远来看,这种“集中式库”变得非常关键,因为随着规模的扩大,流水线中出现了新的要求或变化,在这种情况下,手动更改每个流水线或脚本对管理员来说将是一场噩梦。因此,如果你在一个地方进行更改并且每个流水线都得到更新,那么拥有该集中式库将更加实用。这是 Jenkins 共享库概念的用武之地。有关详细信息,你可以访问该站点。
即使你只有一个流水线,仍然可以使用集中式库。
治理与稳定 如果你的团队有对 CI/CD 一定了解的开发人员,并且你确信他们不会做出重大更改或编写脚本错误导致影响环境的稳定性,那么将流水线脚本放在代码中是很好的。但是,你真的确定吗?
有人很可能会意外删除流水线文件或者可能出现小错误,这些小错误都会影响 CI/CD 的稳定性。如果你在早期发现这些错误时很容易解决这些错误,如果没有,这些微小的变化或错误将可能比你想象的更严重的影响 CI/CD,它将被传播到不同项目中的所有分支或 tag,这会变得很难解决。
你需要将正确的流水线脚本推送到所有分支和/或代码仓库,或是要求每个开发人员提取最新的脚本,这种类型的问题集中式库这种更高级的方式来解决,除此之外,你的环境会因为有人可能会删除 Jenkins 文件或输入一些拼写错误带来风险。
远程文件插件 为了消除不必要的更改的风险并降低使用的库的复杂性,我们需要以某种方式将流水线脚本与项目/代码代码仓库分开,同时仍继续使用多分支流水线功能。为此,我们有远程文件插件。
这个插件使多分支流水线能够从其他代码仓库运行/加载流水线脚本,而不是将它们放在项目/代码代码仓库中,通过这个功能,你可以拥有一个单独的代码仓库,你可以在其中放置所有流水线脚本,并且只能为你自己提供访问权限。这样,你将拥有与集中式库相同的集中式流水线脚本代码仓库。此外,你可以将流水线脚本存储在集中式库本身中。
这个功能的好处是除了有访问权限的人之外,没有人能够在流水线脚本中进行更改。你在集中流水线脚本中所做的任何更改都将影响使用该脚本文件的所有多分支流水线。这样,你无需等待所有开发人员获取更新版本或将脚本推送到所有代码仓库上的所有分支。
另一个好处是,如果你将集中式流水线脚本放入 BitBucket 或 GitHub 等代码仓库中,你还将拥有代码审查功能。这样,你可以与其他人共享代码仓库,同时仍可限制或查看其他人所做的更改。
结论 在大型企业中创建 CI/CD 流水线并不容易,你需要考虑治理,限制,稳定性和安全性等概念。在此上下文中,借助 Jenkins 的其他功能,Remote File Plugin 提供了一个独特的功能,用于集中,维护和共享流水线脚本。
有关插件的详细信息,你可以访问插件的 Wiki 页面。</description>
</item>
<item>
<title>Jenkins 流水线配置历史插件介绍</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/</link>
......@@ -38,6 +60,21 @@ GitHub 请您使用同一个 GitHub 账号来与大家交流,不欢迎使用
直接在 Jenkins 任务中作为脚本。 代码将直接插入任务配置页面。 作为源代码管理系统(SCM)中的 Jenkinsfile:流水线配置在 SCM 中的文本文件(Jenkinsfile)中定义。 在任务本身中,只配置了 Jenkinsfile 存储库的路径。 在构建过程中,Jenkinsfile 从 SCM 中被检出并被处理。 作为共享库:流水线配置的一部分被移动到单独文件中,它可以由多个任务使用。 这些文件也保存在 SCM 中。 即使这样仍然需要 Jenkinsfile(或者任务中的流水线脚本)。 对于任务配置的每次保存操作,如果发生了变更,JobConfigHistory 将创建实际任务配置的副本。 只有当流水线配置作为脚本插入到任务配置页面时,该方法才适用于流水线任务。 JobConfigHistory 未检测到 Jenkinsfile 或共享库中的变更。 您必须使用 SCM 系统查看 Jenkinsfile 或共享库的变更。 在构建时间和对 Jenkinsfile 或共享库的变更之间找到相关性是复杂且耗时的。</description>
</item>
<item>
<title>活动策划</title>
<link>https://jenkins-zh.cn/about/about-event-planning/</link>
<pubDate>Wed, 31 Jul 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/about/about-event-planning/</guid>
<description>本文讨论社区组织 meetup 、workshop 等活动策划的参考指引,方便社区其他地区组织者及志愿者借鉴使用。
活动策划分为以下几步骤: - 活动地区及组织者确定 - 招募志愿者 - 活动任务分工认领 - 活动宣传
1、活动地区及组织者确定 组织者需向 Jenkins 中文社区申请活动组织者得到许可后,才可以进行后续步骤。 - 确定活动地区 - 确定活动主题 - 确定大概活动日期
2、招募志愿者 组织者可根据需要在公众号进行发布志愿者招募信息 - 活动策划志愿者 - UI 志愿者 - 现场活动志愿者
志愿者采取主动报名的方式,报名方式可分为2种: - 社区内部报名 - 公众号发布招募信息,根据招募信息中的报名方式报名
3、活动任务分工认领 活动主题确定后,如果有志愿者参与可根据下表进行任务分工认领:
任务分类 具体事项 完成情况 负责人 确认 场地 租赁与赞助、环境确认 赞助与礼品 赞助清单、礼品采购 讲师 讲师日期及演讲时长确认、ppt 收集 活动宣传 活动稿撰写、活动行及海报制作 活动议程 活动流程安排、日期提醒 场地布置 桌椅摆放、投影、白板 茶歇准备 茶歇采购、摆放 活动签到 参与者签到、礼品发放 活动拍摄 图片、视频拍摄及收集 抽奖活动 抽奖软件、抽奖环节安排 订餐安排 讲师与志愿者订餐 4、活动宣传 至少在活动举行前一个月完成活动宣传稿、活动行以及海报制作 - 首先在社区公众号发布活动通知 - 合作社区一并进行宣传 - 活动海报可在邻近活动日期进行发布 - 如果有精力可制作倒计时海报</description>
</item>
<item>
<title>开源人线下见面会</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-30-jenkins-meetup/</link>
......
......@@ -6,11 +6,21 @@
<loc>https://jenkins-zh.cn/about/code-of-conduct/</loc>
</url>
<url>
<loc>https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/</loc>
<lastmod>2019-08-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/</loc>
<lastmod>2019-07-31T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://jenkins-zh.cn/about/about-event-planning/</loc>
<lastmod>2019-07-31T00:00:00+00:00</lastmod>
</url>
<url>
<loc>https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-30-jenkins-meetup/</loc>
<lastmod>2019-07-30T00:00:00+00:00</lastmod>
......@@ -671,7 +681,7 @@
<url>
<loc>https://jenkins-zh.cn/tags/jenkins/</loc>
<lastmod>2019-07-31T00:00:00+00:00</lastmod>
<lastmod>2019-08-05T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
......@@ -691,7 +701,7 @@
<url>
<loc>https://jenkins-zh.cn/</loc>
<lastmod>2019-07-31T00:00:00+00:00</lastmod>
<lastmod>2019-08-05T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
......@@ -766,6 +776,12 @@
<priority>0</priority>
</url>
<url>
<loc>https://jenkins-zh.cn/tags/multi-branch/</loc>
<lastmod>2019-08-05T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
<url>
<loc>https://jenkins-zh.cn/tags/newcomer/</loc>
<lastmod>2019-04-08T00:00:00+00:00</lastmod>
......@@ -804,7 +820,7 @@
<url>
<loc>https://jenkins-zh.cn/tags/pipeline/</loc>
<lastmod>2019-07-31T00:00:00+00:00</lastmod>
<lastmod>2019-08-05T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
......@@ -844,6 +860,12 @@
<priority>0</priority>
</url>
<url>
<loc>https://jenkins-zh.cn/tags/remote-file/</loc>
<lastmod>2019-08-05T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
<url>
<loc>https://jenkins-zh.cn/tags/remoting/</loc>
<priority>0</priority>
......@@ -918,7 +940,7 @@
<url>
<loc>https://jenkins-zh.cn/wechat/</loc>
<lastmod>2019-07-31T00:00:00+00:00</lastmod>
<lastmod>2019-08-05T00:00:00+00:00</lastmod>
<priority>0</priority>
</url>
......@@ -982,7 +1004,7 @@
<url>
<loc>https://jenkins-zh.cn/about/</loc>
<lastmod>2019-07-09T19:56:04+08:00</lastmod>
<lastmod>2019-07-31T00:00:00+00:00</lastmod>
</url>
<url>
......
......@@ -1140,6 +1140,12 @@ var trackOutboundLink = function(id, url) {
</a>
</h2>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link blue">
在大型企业里维护多分支流水线
</a>
</h3>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link blue">
Jenkins 流水线配置历史插件介绍
......@@ -1627,6 +1633,22 @@ var trackOutboundLink = function(id, url) {
</div>
<div class="break-inside-avoid-l nested-copy-line-height mb5">
<h2 class="f3">
<a href="/tags/multi-branch" class="link black hover-blue">
multi-branch <span class="f6 gray"> &#8599;</span>
</a>
</h2>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link blue">
在大型企业里维护多分支流水线
</a>
</h3>
</div>
<div class="break-inside-avoid-l nested-copy-line-height mb5">
<h2 class="f3">
<a href="/tags/newcomer" class="link black hover-blue">
......@@ -1742,6 +1764,12 @@ var trackOutboundLink = function(id, url) {
</a>
</h2>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link blue">
在大型企业里维护多分支流水线
</a>
</h3>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link blue">
Jenkins 流水线配置历史插件介绍
......@@ -1985,6 +2013,22 @@ var trackOutboundLink = function(id, url) {
</div>
<div class="break-inside-avoid-l nested-copy-line-height mb5">
<h2 class="f3">
<a href="/tags/remote-file" class="link black hover-blue">
remote-file <span class="f6 gray"> &#8599;</span>
</a>
</h2>
<h3>
<a href="https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link blue">
在大型企业里维护多分支流水线
</a>
</h3>
</div>
<div class="break-inside-avoid-l nested-copy-line-height mb5">
<h2 class="f3">
<a href="/tags/remoting" class="link black hover-blue">
......
......@@ -338,7 +338,7 @@
<item>
<title>Jenkins</title>
<link>https://jenkins-zh.cn/tags/jenkins/</link>
<pubDate>Wed, 31 Jul 2019 00:00:00 +0000</pubDate>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/tags/jenkins/</guid>
<description></description>
......@@ -434,6 +434,15 @@
<description></description>
</item>
<item>
<title>Multi Branch</title>
<link>https://jenkins-zh.cn/tags/multi-branch/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/tags/multi-branch/</guid>
<description></description>
</item>
<item>
<title>Newcomer</title>
<link>https://jenkins-zh.cn/tags/newcomer/</link>
......@@ -491,7 +500,7 @@
<item>
<title>Pipeline</title>
<link>https://jenkins-zh.cn/tags/pipeline/</link>
<pubDate>Wed, 31 Jul 2019 00:00:00 +0000</pubDate>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/tags/pipeline/</guid>
<description></description>
......@@ -551,6 +560,15 @@
<description></description>
</item>
<item>
<title>Remote File</title>
<link>https://jenkins-zh.cn/tags/remote-file/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/tags/remote-file/</guid>
<description></description>
</item>
<item>
<title>Remoting</title>
<link>https://jenkins-zh.cn/tags/remoting/</link>
......
......@@ -38,7 +38,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/jenkins/" />
<meta property="og:updated_time" content="2019-07-31T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-08-05T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Jenkins">
<meta itemprop="description" content="">
......@@ -210,6 +210,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link primary-color dim">在大型企业里维护多分支流水线</a>
</h1>
<div class="lh-copy links">
如果没有适当的解决方案,在大型企业可能难以创建和维护多分支流水线。
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link primary-color dim">Jenkins 流水线配置历史插件介绍</a>
</h1>
......
......@@ -6,11 +6,33 @@
<description>Recent content in Jenkins on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Wed, 31 Jul 2019 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Mon, 05 Aug 2019 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/tags/jenkins/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>在大型企业里维护多分支流水线</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/</guid>
<description>Jenkins 是 DevOps 领域里非常好的 CI/CD 工具,它凭借其独特的功能,几乎可以满足你一切的的业务要求。其中一个独特的功能是多分支流水线(Multi-branch 流水线),可以动态配置流水线。但是,随着公司的发展,单独的多分支流水线并不能完全满足你的所有需求,特别是在涉及大型企业时,你需要考虑流水线的集中管理,治理,稳定性,限制和安全性等其他事项。因此对于具有 Jenkins 流水线的大规模 CI/CD 环境,你需要添加之前没有想到的更多功能。
动态配置流水线 当一个开发人员创建一个新分支并将其推送到远程代码仓库时,Jenkins 会为这个新分支动态创建流水线。根据代码仓库,甚至也可以作为动态创建 Pull Request 流水线。这个动态功能在使用 Feature 分支或其他类似功能的团队中非常有用,由于本文的主题不是多分支流水线,你可以在端到端多分支流水线项目创建中找到详细信息和一些示例。
流水线即代码 在多分支流水线中,脚本存储在项目代码仓库中,这就是“流水线即代码”的概念。此外,当你拥有小型开发人员团队或项目没有大量分支时,它非常有用。这样,开发人员可以根据需要更改流水线,将更改推送到分支,并立即看到更改生效,但对于拥有数百或数千名拥有大量项目的开发人员的大型企业而言,这种方案就完成不可行了。
集中式库 当你的团队或项目增加时,是时候考虑一种方法,比如通过共享的的方式应该在所有项目中。从长远来看,这种“集中式库”变得非常关键,因为随着规模的扩大,流水线中出现了新的要求或变化,在这种情况下,手动更改每个流水线或脚本对管理员来说将是一场噩梦。因此,如果你在一个地方进行更改并且每个流水线都得到更新,那么拥有该集中式库将更加实用。这是 Jenkins 共享库概念的用武之地。有关详细信息,你可以访问该站点。
即使你只有一个流水线,仍然可以使用集中式库。
治理与稳定 如果你的团队有对 CI/CD 一定了解的开发人员,并且你确信他们不会做出重大更改或编写脚本错误导致影响环境的稳定性,那么将流水线脚本放在代码中是很好的。但是,你真的确定吗?
有人很可能会意外删除流水线文件或者可能出现小错误,这些小错误都会影响 CI/CD 的稳定性。如果你在早期发现这些错误时很容易解决这些错误,如果没有,这些微小的变化或错误将可能比你想象的更严重的影响 CI/CD,它将被传播到不同项目中的所有分支或 tag,这会变得很难解决。
你需要将正确的流水线脚本推送到所有分支和/或代码仓库,或是要求每个开发人员提取最新的脚本,这种类型的问题集中式库这种更高级的方式来解决,除此之外,你的环境会因为有人可能会删除 Jenkins 文件或输入一些拼写错误带来风险。
远程文件插件 为了消除不必要的更改的风险并降低使用的库的复杂性,我们需要以某种方式将流水线脚本与项目/代码代码仓库分开,同时仍继续使用多分支流水线功能。为此,我们有远程文件插件。
这个插件使多分支流水线能够从其他代码仓库运行/加载流水线脚本,而不是将它们放在项目/代码代码仓库中,通过这个功能,你可以拥有一个单独的代码仓库,你可以在其中放置所有流水线脚本,并且只能为你自己提供访问权限。这样,你将拥有与集中式库相同的集中式流水线脚本代码仓库。此外,你可以将流水线脚本存储在集中式库本身中。
这个功能的好处是除了有访问权限的人之外,没有人能够在流水线脚本中进行更改。你在集中流水线脚本中所做的任何更改都将影响使用该脚本文件的所有多分支流水线。这样,你无需等待所有开发人员获取更新版本或将脚本推送到所有代码仓库上的所有分支。
另一个好处是,如果你将集中式流水线脚本放入 BitBucket 或 GitHub 等代码仓库中,你还将拥有代码审查功能。这样,你可以与其他人共享代码仓库,同时仍可限制或查看其他人所做的更改。
结论 在大型企业中创建 CI/CD 流水线并不容易,你需要考虑治理,限制,稳定性和安全性等概念。在此上下文中,借助 Jenkins 的其他功能,Remote File Plugin 提供了一个独特的功能,用于集中,维护和共享流水线脚本。
有关插件的详细信息,你可以访问插件的 Wiki 页面。</description>
</item>
<item>
<title>Jenkins 流水线配置历史插件介绍</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/</link>
......
......@@ -38,7 +38,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/jenkins/" />
<meta property="og:updated_time" content="2019-05-20T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-05-22T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Jenkins">
<meta itemprop="description" content="">
......@@ -210,6 +210,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link primary-color dim">在大型企业里维护多分支流水线</a>
</h1>
<div class="lh-copy links">
如果没有适当的解决方案,在大型企业可能难以创建和维护多分支流水线。
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link primary-color dim">Jenkins 流水线配置历史插件介绍</a>
</h1>
......
......@@ -38,7 +38,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/jenkins/" />
<meta property="og:updated_time" content="2019-04-26T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-04-29T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Jenkins">
<meta itemprop="description" content="">
......@@ -210,6 +210,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link primary-color dim">在大型企业里维护多分支流水线</a>
</h1>
<div class="lh-copy links">
如果没有适当的解决方案,在大型企业可能难以创建和维护多分支流水线。
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link primary-color dim">Jenkins 流水线配置历史插件介绍</a>
</h1>
......
......@@ -38,7 +38,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/jenkins/" />
<meta property="og:updated_time" content="2019-03-06T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-03-13T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Jenkins">
<meta itemprop="description" content="">
......@@ -210,6 +210,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link primary-color dim">在大型企业里维护多分支流水线</a>
</h1>
<div class="lh-copy links">
如果没有适当的解决方案,在大型企业可能难以创建和维护多分支流水线。
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link primary-color dim">Jenkins 流水线配置历史插件介绍</a>
</h1>
......
<!DOCTYPE html>
<html class="no-js" lang="zh-CN">
<head>
<meta charset="utf-8">
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-200.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-800.woff2" as="font" type="font/woff2" crossorigin>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Multi Branch - Jenkins 中文社区</title>
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="description" content="共建开放、包容、活跃的 Jenkins 社区">
<meta name="keywords" content="Jenkins,Jenkins中文社区,Jenkins官方公众号,持续集成,持续交付,开源社区,DevOps">
<meta name="viewport" content="width=device-width,minimum-scale=1">
<meta name="generator" content="Hugo 0.54.0" />
<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="https://jenkins-zh.cn/tags/multi-branch/index.xml">
<link href='/dist/main.css' rel='stylesheet' type="text/css" /><style>
img.avatar {
width: 32px;
display: inline;
}
</style>
<meta property="og:title" content="Multi Branch" />
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/multi-branch/" />
<meta property="og:updated_time" content="2019-08-05T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Multi Branch">
<meta itemprop="description" content="">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Multi Branch"/>
<meta name="twitter:description" content=""/>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-4216293-5"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-4216293-5');
var trackOutboundLink = function(id, url) {
console.log("track:", id, url)
gtag('event', 'click', {
'event_category': 'outbound',
'event_label': id,
'transport_type': 'beacon',
'event_callback': function(){document.location = url;}
});
}
</script>
</head>
<body class="ma0 sans-serif bg-primary-color-light">
<nav class="bg-primary-color-dark pv4 w-100" role="navigation">
<div class="center flex-ns flex-wrap items-center justify-start mw9">
<h1 class="dim f3 lh-solid ml0-ns mr0 mr4-l mv0 pl3 pl4-ns">
<a href="https://jenkins-zh.cn/" class="link white">
Jenkins 中文社区
</a>
</h1>
<ul class="list ma0 pa0 dn dib-l">
<li class="f5 dib mr4" role="menuitem">
<a href="/wechat/" class="dim link light-silver"
>
博客
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/tutorial/" class="dim link light-silver"
>
教程
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/event/" class="dim link light-silver"
>
活动
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/partner/" class="dim link light-silver"
>
合作伙伴
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/about/" class="dim link light-silver"
>
关于我们
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="http://jenkins.io/zh" class="dim link light-silver"
target="_blank">
Jenkins 官网
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="10" height="10" viewBox="0 0 32 32" class="fill-current v-base" aria-label="External Link">
<path d="M25.152 16.576v5.696q0 2.144-1.504 3.648t-3.648 1.504h-14.848q-2.144 0-3.648-1.504t-1.504-3.648v-14.848q0-2.112 1.504-3.616t3.648-1.536h12.576q0.224 0 0.384 0.16t0.16 0.416v1.152q0 0.256-0.16 0.416t-0.384 0.16h-12.576q-1.184 0-2.016 0.832t-0.864 2.016v14.848q0 1.184 0.864 2.016t2.016 0.864h14.848q1.184 0 2.016-0.864t0.832-2.016v-5.696q0-0.256 0.16-0.416t0.416-0.16h1.152q0.256 0 0.416 0.16t0.16 0.416zM32 1.152v9.12q0 0.48-0.352 0.8t-0.8 0.352-0.8-0.352l-3.136-3.136-11.648 11.648q-0.16 0.192-0.416 0.192t-0.384-0.192l-2.048-2.048q-0.192-0.16-0.192-0.384t0.192-0.416l11.648-11.648-3.136-3.136q-0.352-0.352-0.352-0.8t0.352-0.8 0.8-0.352h9.12q0.48 0 0.8 0.352t0.352 0.8z"></path>
</svg>
</a>
</li>
</ul>
<div class="db dib-ns pl3"><form id="site-search-form" action="" role="search">
<fieldset class="bn ma0 pa0">
<label class="clip" for="email-address">Search</label>
<input type="search" id="search-input" class="needs-js bg-left bg-transparent bn f5 input-reset lh-solid mt3 mt0-ns pl4 pv2 w5 white"
placeholder="搜索文档" type="text"
name="email-address" value="" style="background-image:url('/images/icon-search.png');background-size:16px 16px;">
</fieldset>
</form>
</div>
<div class="list ma0 pa0 dn dib-l"></div>
<span class="absolute mt1 mt2-l pr3 right-0 top-0">
<a class="github-button needs-js link primary-color-dark" href="https://github.com/jenkins-zh/jenkins-zh/" data-size="large" data-show-count="false" aria-label="Star Jenkins WeChat GitHub">Star</a>
</span>
</div>
</nav>
<main role="main" class="content-with-sidebar min-vh-100 pb7 pb0-ns">
<div class="w-100 ph4 pb5 pb6-ns pt1 mt4 pt3-ns">
<div class="flex">
<div class="w-100 w-80-l ph0 ph4-l">
<article class="w-100 nested-copy-line-height nested-links nested-img">
<h1 class="primary-color-dark f2">
Tag: Multi Branch
</h1>
<div class=" mid-gray f5 f4-l">
</div>
</article>
<div class="flex flex-wrap">
<section class="flex-ns flex-wrap justify-between w-100">
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link primary-color dim">在大型企业里维护多分支流水线</a>
</h1>
<div class="lh-copy links">
如果没有适当的解决方案,在大型企业可能难以创建和维护多分支流水线。
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
</div>
</main>
<footer class="bg-primary-color-dark ph4-ns pt4 relative w-100" role="contentinfo">
<div class="center flex-ns flex-wrap justify-between mw9 w-90">
<div class="pb3 pt4 w-100 w-50-ns">
<div class="b f3 light-gray mb3 nested-links tc">
<a href="https://github.com/jenkins-zh/jenkins-zh/graphs/contributors" target="_blank" class="link">Jenkins 社区贡献者</a> 维护<br/>
</div>
<ul class="center f6 list ma0 mv3 pa0 tc" style="display:none"><li class="dib mr3"><a href="https://github.com/jenkins-zh/jenkins-zh/issues/new" class="dim link light-gray pv2">File an Issue</a></li></ul>
<ul class="center f6 list ma0 mv4 pa0 tc">
<li class="dib mr3">
<a href="https://twitter.com/jenkinsci" target="_blank" class="dim link light-gray pv2">Twitter</a>
</li>
<li class="dib mr3">
<a href="https://www.youtube.com/channel/UC63xz3pq26BBgwB3cnwCoqQ" target="_blank" class="dim link light-gray pv2">YouTube</a>
</li>
<li class="dib mr3">
<a href="https://space.bilibili.com/433584098" target="_blank" class="dim link light-gray pv2">哔哩哔哩</a>
</li>
</ul>
</div>
<div>
<div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">优酷视频
<div>
<a href="https://i.youku.com/jenkinszh" target="_blank">
<img src="/images/youku-qrcode.png" with="100" height="100">
</a>
</div>
</div>
<div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">微信公众号
<div>
<a href="https://mp.weixin.qq.com/s/vifdduC3kRGSIMpyL03yVA" target="_blank">
<img src="https://jenkins.io/images/jenkins-wechat.png" with="100" height="100">
</a>
</div>
</div>
</div>
</div>
<div class="f7 gray mb5 mb0-ns ph3 w-100" style="display:none"> 
<p class="dib mr4">Jenkins&reg; is a registered trademark of <a href="https://www.spi-inc.org/" class="link">Software in the Public Interest, Inc.</a></p>
<p class="dib">Copyright 2018–2019 the original authors.</p>
</div>
<div class="bg-primary-color-dark bottom-0 left-0 right-0 dn-l fixed pb3 ph3 w-100"><div class="globalmenu mobilemenu pb3 dn">
<ul class="list hidden dib ph0 ma0 scrolling-touch tc">
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/wechat/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
博客
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/tutorial/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
教程
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/event/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
活动
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/partner/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
合作伙伴
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/about/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
关于我们
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="http://jenkins.io/zh" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
Jenkins 官网
</a>
</li>
</ul>
</div>
<div class="docsmenu mobilemenu pb3 dn">
<ul class="list dib ph0 ma0 scrolling-touch tc">
</ul>
</div>
<div class="flex dn-l justify-between">
<button class="js-toggle flex-auto dib dn-l f6 tc db mt4-ns ph3 pv2 link mr2 white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".globalmenu">Menu</button>
<button class="js-toggle flex-auto dib dn-l f6 tc db mt4-ns ph3 pv2 link white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".docsmenu">Docs Menu</button>
</div>
</div>
</footer>
<link href="/dist/auto-complete.css" rel="stylesheet">
<script type="text/javascript">
var baseurl = "https:\/\/jenkins-zh.cn\/";
</script>
<script src="/dist/lunr.js"></script>
<script src="/dist/autocomplete.js"></script>
<script src="/dist/jquery-3.2.1.min.js"></script>
<script src="/dist/search.js"></script>
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?6db234f713318730f0e5f6a95bdd8d47";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<script>
(function(){
var src = (document.location.protocol == "http:") ? "http://js.passport.qihucdn.com/11.0.1.js?6276dcef5c15f276644151772390c1f9":"https://jspassport.ssl.qhimg.com/11.0.1.js?6276dcef5c15f276644151772390c1f9";
document.write('<script src="' + src + '" id="sozz"><\/script>');
})();
</script>
</body>
</html>
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Multi Branch on Jenkins 中文社区</title>
<link>https://jenkins-zh.cn/tags/multi-branch/</link>
<description>Recent content in Multi Branch on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Mon, 05 Aug 2019 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/tags/multi-branch/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>在大型企业里维护多分支流水线</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/</guid>
<description>Jenkins 是 DevOps 领域里非常好的 CI/CD 工具,它凭借其独特的功能,几乎可以满足你一切的的业务要求。其中一个独特的功能是多分支流水线(Multi-branch 流水线),可以动态配置流水线。但是,随着公司的发展,单独的多分支流水线并不能完全满足你的所有需求,特别是在涉及大型企业时,你需要考虑流水线的集中管理,治理,稳定性,限制和安全性等其他事项。因此对于具有 Jenkins 流水线的大规模 CI/CD 环境,你需要添加之前没有想到的更多功能。
动态配置流水线 当一个开发人员创建一个新分支并将其推送到远程代码仓库时,Jenkins 会为这个新分支动态创建流水线。根据代码仓库,甚至也可以作为动态创建 Pull Request 流水线。这个动态功能在使用 Feature 分支或其他类似功能的团队中非常有用,由于本文的主题不是多分支流水线,你可以在端到端多分支流水线项目创建中找到详细信息和一些示例。
流水线即代码 在多分支流水线中,脚本存储在项目代码仓库中,这就是“流水线即代码”的概念。此外,当你拥有小型开发人员团队或项目没有大量分支时,它非常有用。这样,开发人员可以根据需要更改流水线,将更改推送到分支,并立即看到更改生效,但对于拥有数百或数千名拥有大量项目的开发人员的大型企业而言,这种方案就完成不可行了。
集中式库 当你的团队或项目增加时,是时候考虑一种方法,比如通过共享的的方式应该在所有项目中。从长远来看,这种“集中式库”变得非常关键,因为随着规模的扩大,流水线中出现了新的要求或变化,在这种情况下,手动更改每个流水线或脚本对管理员来说将是一场噩梦。因此,如果你在一个地方进行更改并且每个流水线都得到更新,那么拥有该集中式库将更加实用。这是 Jenkins 共享库概念的用武之地。有关详细信息,你可以访问该站点。
即使你只有一个流水线,仍然可以使用集中式库。
治理与稳定 如果你的团队有对 CI/CD 一定了解的开发人员,并且你确信他们不会做出重大更改或编写脚本错误导致影响环境的稳定性,那么将流水线脚本放在代码中是很好的。但是,你真的确定吗?
有人很可能会意外删除流水线文件或者可能出现小错误,这些小错误都会影响 CI/CD 的稳定性。如果你在早期发现这些错误时很容易解决这些错误,如果没有,这些微小的变化或错误将可能比你想象的更严重的影响 CI/CD,它将被传播到不同项目中的所有分支或 tag,这会变得很难解决。
你需要将正确的流水线脚本推送到所有分支和/或代码仓库,或是要求每个开发人员提取最新的脚本,这种类型的问题集中式库这种更高级的方式来解决,除此之外,你的环境会因为有人可能会删除 Jenkins 文件或输入一些拼写错误带来风险。
远程文件插件 为了消除不必要的更改的风险并降低使用的库的复杂性,我们需要以某种方式将流水线脚本与项目/代码代码仓库分开,同时仍继续使用多分支流水线功能。为此,我们有远程文件插件。
这个插件使多分支流水线能够从其他代码仓库运行/加载流水线脚本,而不是将它们放在项目/代码代码仓库中,通过这个功能,你可以拥有一个单独的代码仓库,你可以在其中放置所有流水线脚本,并且只能为你自己提供访问权限。这样,你将拥有与集中式库相同的集中式流水线脚本代码仓库。此外,你可以将流水线脚本存储在集中式库本身中。
这个功能的好处是除了有访问权限的人之外,没有人能够在流水线脚本中进行更改。你在集中流水线脚本中所做的任何更改都将影响使用该脚本文件的所有多分支流水线。这样,你无需等待所有开发人员获取更新版本或将脚本推送到所有代码仓库上的所有分支。
另一个好处是,如果你将集中式流水线脚本放入 BitBucket 或 GitHub 等代码仓库中,你还将拥有代码审查功能。这样,你可以与其他人共享代码仓库,同时仍可限制或查看其他人所做的更改。
结论 在大型企业中创建 CI/CD 流水线并不容易,你需要考虑治理,限制,稳定性和安全性等概念。在此上下文中,借助 Jenkins 的其他功能,Remote File Plugin 提供了一个独特的功能,用于集中,维护和共享流水线脚本。
有关插件的详细信息,你可以访问插件的 Wiki 页面。</description>
</item>
</channel>
</rss>
\ No newline at end of file
<!DOCTYPE html><html><head><title>https://jenkins-zh.cn/tags/multi-branch/</title><link rel="canonical" href="https://jenkins-zh.cn/tags/multi-branch/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://jenkins-zh.cn/tags/multi-branch/" /></head></html>
\ No newline at end of file
......@@ -38,7 +38,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/pipeline/" />
<meta property="og:updated_time" content="2019-07-31T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-08-05T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Pipeline">
<meta itemprop="description" content="">
......@@ -210,6 +210,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link primary-color dim">在大型企业里维护多分支流水线</a>
</h1>
<div class="lh-copy links">
如果没有适当的解决方案,在大型企业可能难以创建和维护多分支流水线。
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link primary-color dim">Jenkins 流水线配置历史插件介绍</a>
</h1>
......
......@@ -6,11 +6,33 @@
<description>Recent content in Pipeline on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Wed, 31 Jul 2019 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Mon, 05 Aug 2019 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/tags/pipeline/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>在大型企业里维护多分支流水线</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/</guid>
<description>Jenkins 是 DevOps 领域里非常好的 CI/CD 工具,它凭借其独特的功能,几乎可以满足你一切的的业务要求。其中一个独特的功能是多分支流水线(Multi-branch 流水线),可以动态配置流水线。但是,随着公司的发展,单独的多分支流水线并不能完全满足你的所有需求,特别是在涉及大型企业时,你需要考虑流水线的集中管理,治理,稳定性,限制和安全性等其他事项。因此对于具有 Jenkins 流水线的大规模 CI/CD 环境,你需要添加之前没有想到的更多功能。
动态配置流水线 当一个开发人员创建一个新分支并将其推送到远程代码仓库时,Jenkins 会为这个新分支动态创建流水线。根据代码仓库,甚至也可以作为动态创建 Pull Request 流水线。这个动态功能在使用 Feature 分支或其他类似功能的团队中非常有用,由于本文的主题不是多分支流水线,你可以在端到端多分支流水线项目创建中找到详细信息和一些示例。
流水线即代码 在多分支流水线中,脚本存储在项目代码仓库中,这就是“流水线即代码”的概念。此外,当你拥有小型开发人员团队或项目没有大量分支时,它非常有用。这样,开发人员可以根据需要更改流水线,将更改推送到分支,并立即看到更改生效,但对于拥有数百或数千名拥有大量项目的开发人员的大型企业而言,这种方案就完成不可行了。
集中式库 当你的团队或项目增加时,是时候考虑一种方法,比如通过共享的的方式应该在所有项目中。从长远来看,这种“集中式库”变得非常关键,因为随着规模的扩大,流水线中出现了新的要求或变化,在这种情况下,手动更改每个流水线或脚本对管理员来说将是一场噩梦。因此,如果你在一个地方进行更改并且每个流水线都得到更新,那么拥有该集中式库将更加实用。这是 Jenkins 共享库概念的用武之地。有关详细信息,你可以访问该站点。
即使你只有一个流水线,仍然可以使用集中式库。
治理与稳定 如果你的团队有对 CI/CD 一定了解的开发人员,并且你确信他们不会做出重大更改或编写脚本错误导致影响环境的稳定性,那么将流水线脚本放在代码中是很好的。但是,你真的确定吗?
有人很可能会意外删除流水线文件或者可能出现小错误,这些小错误都会影响 CI/CD 的稳定性。如果你在早期发现这些错误时很容易解决这些错误,如果没有,这些微小的变化或错误将可能比你想象的更严重的影响 CI/CD,它将被传播到不同项目中的所有分支或 tag,这会变得很难解决。
你需要将正确的流水线脚本推送到所有分支和/或代码仓库,或是要求每个开发人员提取最新的脚本,这种类型的问题集中式库这种更高级的方式来解决,除此之外,你的环境会因为有人可能会删除 Jenkins 文件或输入一些拼写错误带来风险。
远程文件插件 为了消除不必要的更改的风险并降低使用的库的复杂性,我们需要以某种方式将流水线脚本与项目/代码代码仓库分开,同时仍继续使用多分支流水线功能。为此,我们有远程文件插件。
这个插件使多分支流水线能够从其他代码仓库运行/加载流水线脚本,而不是将它们放在项目/代码代码仓库中,通过这个功能,你可以拥有一个单独的代码仓库,你可以在其中放置所有流水线脚本,并且只能为你自己提供访问权限。这样,你将拥有与集中式库相同的集中式流水线脚本代码仓库。此外,你可以将流水线脚本存储在集中式库本身中。
这个功能的好处是除了有访问权限的人之外,没有人能够在流水线脚本中进行更改。你在集中流水线脚本中所做的任何更改都将影响使用该脚本文件的所有多分支流水线。这样,你无需等待所有开发人员获取更新版本或将脚本推送到所有代码仓库上的所有分支。
另一个好处是,如果你将集中式流水线脚本放入 BitBucket 或 GitHub 等代码仓库中,你还将拥有代码审查功能。这样,你可以与其他人共享代码仓库,同时仍可限制或查看其他人所做的更改。
结论 在大型企业中创建 CI/CD 流水线并不容易,你需要考虑治理,限制,稳定性和安全性等概念。在此上下文中,借助 Jenkins 的其他功能,Remote File Plugin 提供了一个独特的功能,用于集中,维护和共享流水线脚本。
有关插件的详细信息,你可以访问插件的 Wiki 页面。</description>
</item>
<item>
<title>Jenkins 流水线配置历史插件介绍</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/</link>
......
......@@ -38,7 +38,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/pipeline/" />
<meta property="og:updated_time" content="2019-03-06T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-03-13T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Pipeline">
<meta itemprop="description" content="">
......@@ -210,6 +210,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link primary-color dim">在大型企业里维护多分支流水线</a>
</h1>
<div class="lh-copy links">
如果没有适当的解决方案,在大型企业可能难以创建和维护多分支流水线。
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link primary-color dim">Jenkins 流水线配置历史插件介绍</a>
</h1>
......
<!DOCTYPE html>
<html class="no-js" lang="zh-CN">
<head>
<meta charset="utf-8">
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-200.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="https://jenkins-zh.cn/files/muli-latin-800.woff2" as="font" type="font/woff2" crossorigin>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Remote File - Jenkins 中文社区</title>
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="description" content="共建开放、包容、活跃的 Jenkins 社区">
<meta name="keywords" content="Jenkins,Jenkins中文社区,Jenkins官方公众号,持续集成,持续交付,开源社区,DevOps">
<meta name="viewport" content="width=device-width,minimum-scale=1">
<meta name="generator" content="Hugo 0.54.0" />
<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="https://jenkins-zh.cn/tags/remote-file/index.xml">
<link href='/dist/main.css' rel='stylesheet' type="text/css" /><style>
img.avatar {
width: 32px;
display: inline;
}
</style>
<meta property="og:title" content="Remote File" />
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/tags/remote-file/" />
<meta property="og:updated_time" content="2019-08-05T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Remote File">
<meta itemprop="description" content="">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Remote File"/>
<meta name="twitter:description" content=""/>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-4216293-5"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-4216293-5');
var trackOutboundLink = function(id, url) {
console.log("track:", id, url)
gtag('event', 'click', {
'event_category': 'outbound',
'event_label': id,
'transport_type': 'beacon',
'event_callback': function(){document.location = url;}
});
}
</script>
</head>
<body class="ma0 sans-serif bg-primary-color-light">
<nav class="bg-primary-color-dark pv4 w-100" role="navigation">
<div class="center flex-ns flex-wrap items-center justify-start mw9">
<h1 class="dim f3 lh-solid ml0-ns mr0 mr4-l mv0 pl3 pl4-ns">
<a href="https://jenkins-zh.cn/" class="link white">
Jenkins 中文社区
</a>
</h1>
<ul class="list ma0 pa0 dn dib-l">
<li class="f5 dib mr4" role="menuitem">
<a href="/wechat/" class="dim link light-silver"
>
博客
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/tutorial/" class="dim link light-silver"
>
教程
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/event/" class="dim link light-silver"
>
活动
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/partner/" class="dim link light-silver"
>
合作伙伴
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="/about/" class="dim link light-silver"
>
关于我们
</a>
</li>
<li class="f5 dib mr4" role="menuitem">
<a href="http://jenkins.io/zh" class="dim link light-silver"
target="_blank">
Jenkins 官网
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="10" height="10" viewBox="0 0 32 32" class="fill-current v-base" aria-label="External Link">
<path d="M25.152 16.576v5.696q0 2.144-1.504 3.648t-3.648 1.504h-14.848q-2.144 0-3.648-1.504t-1.504-3.648v-14.848q0-2.112 1.504-3.616t3.648-1.536h12.576q0.224 0 0.384 0.16t0.16 0.416v1.152q0 0.256-0.16 0.416t-0.384 0.16h-12.576q-1.184 0-2.016 0.832t-0.864 2.016v14.848q0 1.184 0.864 2.016t2.016 0.864h14.848q1.184 0 2.016-0.864t0.832-2.016v-5.696q0-0.256 0.16-0.416t0.416-0.16h1.152q0.256 0 0.416 0.16t0.16 0.416zM32 1.152v9.12q0 0.48-0.352 0.8t-0.8 0.352-0.8-0.352l-3.136-3.136-11.648 11.648q-0.16 0.192-0.416 0.192t-0.384-0.192l-2.048-2.048q-0.192-0.16-0.192-0.384t0.192-0.416l11.648-11.648-3.136-3.136q-0.352-0.352-0.352-0.8t0.352-0.8 0.8-0.352h9.12q0.48 0 0.8 0.352t0.352 0.8z"></path>
</svg>
</a>
</li>
</ul>
<div class="db dib-ns pl3"><form id="site-search-form" action="" role="search">
<fieldset class="bn ma0 pa0">
<label class="clip" for="email-address">Search</label>
<input type="search" id="search-input" class="needs-js bg-left bg-transparent bn f5 input-reset lh-solid mt3 mt0-ns pl4 pv2 w5 white"
placeholder="搜索文档" type="text"
name="email-address" value="" style="background-image:url('/images/icon-search.png');background-size:16px 16px;">
</fieldset>
</form>
</div>
<div class="list ma0 pa0 dn dib-l"></div>
<span class="absolute mt1 mt2-l pr3 right-0 top-0">
<a class="github-button needs-js link primary-color-dark" href="https://github.com/jenkins-zh/jenkins-zh/" data-size="large" data-show-count="false" aria-label="Star Jenkins WeChat GitHub">Star</a>
</span>
</div>
</nav>
<main role="main" class="content-with-sidebar min-vh-100 pb7 pb0-ns">
<div class="w-100 ph4 pb5 pb6-ns pt1 mt4 pt3-ns">
<div class="flex">
<div class="w-100 w-80-l ph0 ph4-l">
<article class="w-100 nested-copy-line-height nested-links nested-img">
<h1 class="primary-color-dark f2">
Tag: Remote File
</h1>
<div class=" mid-gray f5 f4-l">
</div>
</article>
<div class="flex flex-wrap">
<section class="flex-ns flex-wrap justify-between w-100">
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link primary-color dim">在大型企业里维护多分支流水线</a>
</h1>
<div class="lh-copy links">
如果没有适当的解决方案,在大型企业可能难以创建和维护多分支流水线。
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
</div>
</main>
<footer class="bg-primary-color-dark ph4-ns pt4 relative w-100" role="contentinfo">
<div class="center flex-ns flex-wrap justify-between mw9 w-90">
<div class="pb3 pt4 w-100 w-50-ns">
<div class="b f3 light-gray mb3 nested-links tc">
<a href="https://github.com/jenkins-zh/jenkins-zh/graphs/contributors" target="_blank" class="link">Jenkins 社区贡献者</a> 维护<br/>
</div>
<ul class="center f6 list ma0 mv3 pa0 tc" style="display:none"><li class="dib mr3"><a href="https://github.com/jenkins-zh/jenkins-zh/issues/new" class="dim link light-gray pv2">File an Issue</a></li></ul>
<ul class="center f6 list ma0 mv4 pa0 tc">
<li class="dib mr3">
<a href="https://twitter.com/jenkinsci" target="_blank" class="dim link light-gray pv2">Twitter</a>
</li>
<li class="dib mr3">
<a href="https://www.youtube.com/channel/UC63xz3pq26BBgwB3cnwCoqQ" target="_blank" class="dim link light-gray pv2">YouTube</a>
</li>
<li class="dib mr3">
<a href="https://space.bilibili.com/433584098" target="_blank" class="dim link light-gray pv2">哔哩哔哩</a>
</li>
</ul>
</div>
<div>
<div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">优酷视频
<div>
<a href="https://i.youku.com/jenkinszh" target="_blank">
<img src="/images/youku-qrcode.png" with="100" height="100">
</a>
</div>
</div>
<div style="color: #ffffff; display: inline-block; text-align: center; margin-right: 5px; margin-left: 5px;">微信公众号
<div>
<a href="https://mp.weixin.qq.com/s/vifdduC3kRGSIMpyL03yVA" target="_blank">
<img src="https://jenkins.io/images/jenkins-wechat.png" with="100" height="100">
</a>
</div>
</div>
</div>
</div>
<div class="f7 gray mb5 mb0-ns ph3 w-100" style="display:none"> 
<p class="dib mr4">Jenkins&reg; is a registered trademark of <a href="https://www.spi-inc.org/" class="link">Software in the Public Interest, Inc.</a></p>
<p class="dib">Copyright 2018–2019 the original authors.</p>
</div>
<div class="bg-primary-color-dark bottom-0 left-0 right-0 dn-l fixed pb3 ph3 w-100"><div class="globalmenu mobilemenu pb3 dn">
<ul class="list hidden dib ph0 ma0 scrolling-touch tc">
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/wechat/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
博客
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/tutorial/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
教程
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/event/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
活动
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/partner/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
合作伙伴
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="/about/" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
关于我们
</a>
</li>
<li class="tl dib ma0 hover-bg-black w-100">
<a href="http://jenkins.io/zh" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4">
Jenkins 官网
</a>
</li>
</ul>
</div>
<div class="docsmenu mobilemenu pb3 dn">
<ul class="list dib ph0 ma0 scrolling-touch tc">
</ul>
</div>
<div class="flex dn-l justify-between">
<button class="js-toggle flex-auto dib dn-l f6 tc db mt4-ns ph3 pv2 link mr2 white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".globalmenu">Menu</button>
<button class="js-toggle flex-auto dib dn-l f6 tc db mt4-ns ph3 pv2 link white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".docsmenu">Docs Menu</button>
</div>
</div>
</footer>
<link href="/dist/auto-complete.css" rel="stylesheet">
<script type="text/javascript">
var baseurl = "https:\/\/jenkins-zh.cn\/";
</script>
<script src="/dist/lunr.js"></script>
<script src="/dist/autocomplete.js"></script>
<script src="/dist/jquery-3.2.1.min.js"></script>
<script src="/dist/search.js"></script>
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?6db234f713318730f0e5f6a95bdd8d47";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<script>
(function(){
var src = (document.location.protocol == "http:") ? "http://js.passport.qihucdn.com/11.0.1.js?6276dcef5c15f276644151772390c1f9":"https://jspassport.ssl.qhimg.com/11.0.1.js?6276dcef5c15f276644151772390c1f9";
document.write('<script src="' + src + '" id="sozz"><\/script>');
})();
</script>
</body>
</html>
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Remote File on Jenkins 中文社区</title>
<link>https://jenkins-zh.cn/tags/remote-file/</link>
<description>Recent content in Remote File on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Mon, 05 Aug 2019 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/tags/remote-file/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>在大型企业里维护多分支流水线</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/</guid>
<description>Jenkins 是 DevOps 领域里非常好的 CI/CD 工具,它凭借其独特的功能,几乎可以满足你一切的的业务要求。其中一个独特的功能是多分支流水线(Multi-branch 流水线),可以动态配置流水线。但是,随着公司的发展,单独的多分支流水线并不能完全满足你的所有需求,特别是在涉及大型企业时,你需要考虑流水线的集中管理,治理,稳定性,限制和安全性等其他事项。因此对于具有 Jenkins 流水线的大规模 CI/CD 环境,你需要添加之前没有想到的更多功能。
动态配置流水线 当一个开发人员创建一个新分支并将其推送到远程代码仓库时,Jenkins 会为这个新分支动态创建流水线。根据代码仓库,甚至也可以作为动态创建 Pull Request 流水线。这个动态功能在使用 Feature 分支或其他类似功能的团队中非常有用,由于本文的主题不是多分支流水线,你可以在端到端多分支流水线项目创建中找到详细信息和一些示例。
流水线即代码 在多分支流水线中,脚本存储在项目代码仓库中,这就是“流水线即代码”的概念。此外,当你拥有小型开发人员团队或项目没有大量分支时,它非常有用。这样,开发人员可以根据需要更改流水线,将更改推送到分支,并立即看到更改生效,但对于拥有数百或数千名拥有大量项目的开发人员的大型企业而言,这种方案就完成不可行了。
集中式库 当你的团队或项目增加时,是时候考虑一种方法,比如通过共享的的方式应该在所有项目中。从长远来看,这种“集中式库”变得非常关键,因为随着规模的扩大,流水线中出现了新的要求或变化,在这种情况下,手动更改每个流水线或脚本对管理员来说将是一场噩梦。因此,如果你在一个地方进行更改并且每个流水线都得到更新,那么拥有该集中式库将更加实用。这是 Jenkins 共享库概念的用武之地。有关详细信息,你可以访问该站点。
即使你只有一个流水线,仍然可以使用集中式库。
治理与稳定 如果你的团队有对 CI/CD 一定了解的开发人员,并且你确信他们不会做出重大更改或编写脚本错误导致影响环境的稳定性,那么将流水线脚本放在代码中是很好的。但是,你真的确定吗?
有人很可能会意外删除流水线文件或者可能出现小错误,这些小错误都会影响 CI/CD 的稳定性。如果你在早期发现这些错误时很容易解决这些错误,如果没有,这些微小的变化或错误将可能比你想象的更严重的影响 CI/CD,它将被传播到不同项目中的所有分支或 tag,这会变得很难解决。
你需要将正确的流水线脚本推送到所有分支和/或代码仓库,或是要求每个开发人员提取最新的脚本,这种类型的问题集中式库这种更高级的方式来解决,除此之外,你的环境会因为有人可能会删除 Jenkins 文件或输入一些拼写错误带来风险。
远程文件插件 为了消除不必要的更改的风险并降低使用的库的复杂性,我们需要以某种方式将流水线脚本与项目/代码代码仓库分开,同时仍继续使用多分支流水线功能。为此,我们有远程文件插件。
这个插件使多分支流水线能够从其他代码仓库运行/加载流水线脚本,而不是将它们放在项目/代码代码仓库中,通过这个功能,你可以拥有一个单独的代码仓库,你可以在其中放置所有流水线脚本,并且只能为你自己提供访问权限。这样,你将拥有与集中式库相同的集中式流水线脚本代码仓库。此外,你可以将流水线脚本存储在集中式库本身中。
这个功能的好处是除了有访问权限的人之外,没有人能够在流水线脚本中进行更改。你在集中流水线脚本中所做的任何更改都将影响使用该脚本文件的所有多分支流水线。这样,你无需等待所有开发人员获取更新版本或将脚本推送到所有代码仓库上的所有分支。
另一个好处是,如果你将集中式流水线脚本放入 BitBucket 或 GitHub 等代码仓库中,你还将拥有代码审查功能。这样,你可以与其他人共享代码仓库,同时仍可限制或查看其他人所做的更改。
结论 在大型企业中创建 CI/CD 流水线并不容易,你需要考虑治理,限制,稳定性和安全性等概念。在此上下文中,借助 Jenkins 的其他功能,Remote File Plugin 提供了一个独特的功能,用于集中,维护和共享流水线脚本。
有关插件的详细信息,你可以访问插件的 Wiki 页面。</description>
</item>
</channel>
</rss>
\ No newline at end of file
<!DOCTYPE html><html><head><title>https://jenkins-zh.cn/tags/remote-file/</title><link rel="canonical" href="https://jenkins-zh.cn/tags/remote-file/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://jenkins-zh.cn/tags/remote-file/" /></head></html>
\ No newline at end of file
......@@ -477,8 +477,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -489,6 +489,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -653,8 +653,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -665,6 +665,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/" class="link">
在 Kubernetes 上使用 Jenkins
......
......@@ -414,8 +414,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -426,6 +426,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -578,8 +578,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -590,6 +590,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -493,8 +493,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -505,6 +505,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -510,8 +510,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -522,6 +522,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -447,8 +447,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -459,6 +459,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -536,8 +536,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -548,6 +548,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -461,8 +461,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -473,6 +473,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -605,8 +605,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -617,6 +617,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -462,8 +462,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -474,6 +474,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -629,8 +629,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -641,6 +641,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -423,8 +423,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -435,6 +435,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -648,8 +648,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -660,6 +660,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -378,8 +378,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -390,6 +390,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -374,8 +374,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -386,6 +386,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -446,8 +446,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -458,6 +458,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -390,8 +390,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -402,6 +402,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -589,8 +589,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -601,6 +601,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -597,8 +597,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -609,6 +609,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -521,8 +521,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -533,6 +533,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -362,12 +362,14 @@ var trackOutboundLink = function(id, url) {
<h2>参考</h2>
<ul>
<li><a href="/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/">在 Kubernetes 上使用 Jenkins </a></li>
<li><a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/">在大型企业里维护多分支流水线</a></li>
<li><a href="/wechat/articles/2019/07/2019-07-04-performance-testing-jenkins/">Jenkins 插件的微基准测试框架</a></li>
<li><a href="/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/">在 Kubernetes 上使用 Jenkins </a></li>
<li><a href="/wechat/articles/2019/07/2019-07-10-phase-1-multibranch-pipeline-support-for-gitlab/">多分支流水线任务对 GitLab SCM 的支持</a></li>
<li><a href="/wechat/articles/2019/07/2019-07-04-performance-testing-jenkins/">Jenkins 插件的微基准测试框架</a></li>
</ul>
</div>
......
......@@ -679,8 +679,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -691,6 +691,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -401,8 +401,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -413,6 +413,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -381,8 +381,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -393,6 +393,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -594,8 +594,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -606,6 +606,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -553,8 +553,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -565,6 +565,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -643,8 +643,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -655,6 +655,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -520,6 +520,8 @@ runBenchmarks('jmh-report.json')
<h2>参考</h2>
<ul>
<li><a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/">在大型企业里维护多分支流水线</a></li>
<li><a href="/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/">在 Kubernetes 上使用 Jenkins </a></li>
<li><a href="/wechat/articles/2019/07/2019-07-10-phase-1-multibranch-pipeline-support-for-gitlab/">多分支流水线任务对 GitLab SCM 的支持</a></li>
......
......@@ -559,8 +559,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -571,6 +571,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/" class="link">
在 Kubernetes 上使用 Jenkins
......
......@@ -435,8 +435,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -447,6 +447,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -574,6 +574,8 @@ unclassified:
<h2>参考</h2>
<ul>
<li><a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/">在大型企业里维护多分支流水线</a></li>
<li><a href="/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/">在 Kubernetes 上使用 Jenkins </a></li>
<li><a href="/wechat/articles/2019/07/2019-07-04-performance-testing-jenkins/">Jenkins 插件的微基准测试框架</a></li>
......
......@@ -407,8 +407,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -419,6 +419,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
......
......@@ -413,8 +413,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
......@@ -425,6 +425,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link">
Jenkins 流水线配置历史插件介绍
</a>
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/" class="link">
持续交付落地实践工作坊
......
......@@ -378,10 +378,12 @@ var trackOutboundLink = function(id, url) {
<h2>参考</h2>
<ul>
<li><a href="/wechat/articles/2019/07/2019-07-10-phase-1-multibranch-pipeline-support-for-gitlab/">多分支流水线任务对 GitLab SCM 的支持</a></li>
<li><a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/">在大型企业里维护多分支流水线</a></li>
<li><a href="/wechat/articles/2019/07/2019-07-04-performance-testing-jenkins/">Jenkins 插件的微基准测试框架</a></li>
<li><a href="/wechat/articles/2019/07/2019-07-10-phase-1-multibranch-pipeline-support-for-gitlab/">多分支流水线任务对 GitLab SCM 的支持</a></li>
<li><a href="/wechat/articles/2019/05/2019-05-27-docs-sig-announcement/">Jenkins 文档特别兴趣小组</a></li>
</ul>
......
......@@ -244,6 +244,14 @@ var trackOutboundLink = function(id, url) {
</a>
<a href="https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="dib f6 pl1 hover-bg-light-gray br-100" title="在大型企业里维护多分支流水线 ">
<svg class="fill-current" height="30px" viewBox="0 0 24 24" width="30px" xmlns="http://www.w3.org/2000/svg">
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>
<path d="M0 0h24v24H0z" fill="none"/>
</svg>
</a>
<a href="https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-30-jenkins-meetup/" class="dib f6 pr1 hover-bg-light-gray br-100" title="开源人线下见面会">
......@@ -446,6 +454,12 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link">
在大型企业里维护多分支流水线
</a>
</li>
<li class="db b mt4 mb2 mr2">
......@@ -453,6 +467,9 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
</li>
<li class="db dib-l mb2 mr3">
<a href="/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/" class="link">
在 Kubernetes 上使用 Jenkins
......
......@@ -38,7 +38,7 @@
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkins-zh.cn/wechat/" />
<meta property="og:updated_time" content="2019-07-31T00:00:00&#43;00:00"/>
<meta property="og:updated_time" content="2019-08-05T00:00:00&#43;00:00"/>
<meta itemprop="name" content="Wechats">
<meta itemprop="description" content="">
......@@ -210,6 +210,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="link primary-color dim">在大型企业里维护多分支流水线</a>
</h1>
<div class="lh-copy links">
如果没有适当的解决方案,在大型企业可能难以创建和维护多分支流水线。
<a href="/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/" class="link primary-color dim">Jenkins 流水线配置历史插件介绍</a>
</h1>
......@@ -447,33 +474,6 @@ var trackOutboundLink = function(id, url) {
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/07/2019-07-10-phase-1-multibranch-pipeline-support-for-gitlab/" class="link primary-color dim">多分支流水线任务对 GitLab SCM 的支持</a>
</h1>
<div class="lh-copy links">
本文介绍了多分支流水线任务对 GitLab SCM 的支持
<a href="/wechat/articles/2019/07/2019-07-10-phase-1-multibranch-pipeline-support-for-gitlab/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
</section>
</div>
......
......@@ -6,11 +6,33 @@
<description>Recent content in Wechats on Jenkins 中文社区</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-CN</language>
<lastBuildDate>Wed, 31 Jul 2019 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Mon, 05 Aug 2019 00:00:00 +0000</lastBuildDate>
<atom:link href="https://jenkins-zh.cn/wechat/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>在大型企业里维护多分支流水线</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>https://jenkins-zh.cn/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/</guid>
<description>Jenkins 是 DevOps 领域里非常好的 CI/CD 工具,它凭借其独特的功能,几乎可以满足你一切的的业务要求。其中一个独特的功能是多分支流水线(Multi-branch 流水线),可以动态配置流水线。但是,随着公司的发展,单独的多分支流水线并不能完全满足你的所有需求,特别是在涉及大型企业时,你需要考虑流水线的集中管理,治理,稳定性,限制和安全性等其他事项。因此对于具有 Jenkins 流水线的大规模 CI/CD 环境,你需要添加之前没有想到的更多功能。
动态配置流水线 当一个开发人员创建一个新分支并将其推送到远程代码仓库时,Jenkins 会为这个新分支动态创建流水线。根据代码仓库,甚至也可以作为动态创建 Pull Request 流水线。这个动态功能在使用 Feature 分支或其他类似功能的团队中非常有用,由于本文的主题不是多分支流水线,你可以在端到端多分支流水线项目创建中找到详细信息和一些示例。
流水线即代码 在多分支流水线中,脚本存储在项目代码仓库中,这就是“流水线即代码”的概念。此外,当你拥有小型开发人员团队或项目没有大量分支时,它非常有用。这样,开发人员可以根据需要更改流水线,将更改推送到分支,并立即看到更改生效,但对于拥有数百或数千名拥有大量项目的开发人员的大型企业而言,这种方案就完成不可行了。
集中式库 当你的团队或项目增加时,是时候考虑一种方法,比如通过共享的的方式应该在所有项目中。从长远来看,这种“集中式库”变得非常关键,因为随着规模的扩大,流水线中出现了新的要求或变化,在这种情况下,手动更改每个流水线或脚本对管理员来说将是一场噩梦。因此,如果你在一个地方进行更改并且每个流水线都得到更新,那么拥有该集中式库将更加实用。这是 Jenkins 共享库概念的用武之地。有关详细信息,你可以访问该站点。
即使你只有一个流水线,仍然可以使用集中式库。
治理与稳定 如果你的团队有对 CI/CD 一定了解的开发人员,并且你确信他们不会做出重大更改或编写脚本错误导致影响环境的稳定性,那么将流水线脚本放在代码中是很好的。但是,你真的确定吗?
有人很可能会意外删除流水线文件或者可能出现小错误,这些小错误都会影响 CI/CD 的稳定性。如果你在早期发现这些错误时很容易解决这些错误,如果没有,这些微小的变化或错误将可能比你想象的更严重的影响 CI/CD,它将被传播到不同项目中的所有分支或 tag,这会变得很难解决。
你需要将正确的流水线脚本推送到所有分支和/或代码仓库,或是要求每个开发人员提取最新的脚本,这种类型的问题集中式库这种更高级的方式来解决,除此之外,你的环境会因为有人可能会删除 Jenkins 文件或输入一些拼写错误带来风险。
远程文件插件 为了消除不必要的更改的风险并降低使用的库的复杂性,我们需要以某种方式将流水线脚本与项目/代码代码仓库分开,同时仍继续使用多分支流水线功能。为此,我们有远程文件插件。
这个插件使多分支流水线能够从其他代码仓库运行/加载流水线脚本,而不是将它们放在项目/代码代码仓库中,通过这个功能,你可以拥有一个单独的代码仓库,你可以在其中放置所有流水线脚本,并且只能为你自己提供访问权限。这样,你将拥有与集中式库相同的集中式流水线脚本代码仓库。此外,你可以将流水线脚本存储在集中式库本身中。
这个功能的好处是除了有访问权限的人之外,没有人能够在流水线脚本中进行更改。你在集中流水线脚本中所做的任何更改都将影响使用该脚本文件的所有多分支流水线。这样,你无需等待所有开发人员获取更新版本或将脚本推送到所有代码仓库上的所有分支。
另一个好处是,如果你将集中式流水线脚本放入 BitBucket 或 GitHub 等代码仓库中,你还将拥有代码审查功能。这样,你可以与其他人共享代码仓库,同时仍可限制或查看其他人所做的更改。
结论 在大型企业中创建 CI/CD 流水线并不容易,你需要考虑治理,限制,稳定性和安全性等概念。在此上下文中,借助 Jenkins 的其他功能,Remote File Plugin 提供了一个独特的功能,用于集中,维护和共享流水线脚本。
有关插件的详细信息,你可以访问插件的 Wiki 页面。</description>
</item>
<item>
<title>Jenkins 流水线配置历史插件介绍</title>
<link>https://jenkins-zh.cn/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/</link>
......
---
name: shenxianpeng
github: shenxianpeng
nickname: 沈显鹏
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
......@@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2019/04/2019-04-12-what-is-cicd/" class="link primary-color dim">什么是 CI/CD?</a>
</h1>
<div class="lh-copy links">
本文介绍了 CI/CD 的概念及应用场景
<a href="/wechat/articles/2019/04/2019-04-12-what-is-cicd/" class="f6 mt2 db link primary-color dim">
查看更多 &raquo;
</a>
</div>
</div>
</div>
<div class="relative weight-0" style="max-width: 350px">
<div class="bg-white mb2 pa3 pa4-l gray">
<h1 class="near-black f3">
<a href="/wechat/articles/2018/12/2018-12-19-scaling-network-connections/" class="link primary-color dim">从 Jenkins Master 扩展网络连接</a>
</h1>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册