|  | @@ -2,11 +2,44 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  这是一个 Jenkins 多分支自动化部署运行参考项目  
 | 
	
		
			
				|  |  |  Jenkins 会根据根目录中的 [Jenkinsfile](./Jenkinsfile) 进行自动编译或运行  
 | 
	
		
			
				|  |  | -目录下的示例 [Jenkinsfile](./Jenkinsfile) 可以拷贝修改后直接使用  
 | 
	
		
			
				|  |  | -   
 | 
	
		
			
				|  |  | +目录下的示例 [Jenkinsfile](./Jenkinsfile) 可以拷贝修改后直接使用
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  如果需要更多相关信息可以参考:  
 | 
	
		
			
				|  |  |  [Jenkinsfile 入门](https://www.jenkins.io/zh/doc/book/pipeline/jenkinsfile/)  
 | 
	
		
			
				|  |  | -[Jenkinsfile 参考文档](https://www.jenkins.io/zh/doc/book/pipeline/syntax/)
 | 
	
		
			
				|  |  | +[Jenkinsfile 参考文档](https://www.jenkins.io/zh/doc/book/pipeline/syntax/)  
 | 
	
		
			
				|  |  | +或者Jenkins项目左边的那个流水线语法
 | 
	
		
			
				|  |  | +[docker{}](http://192.168.0.80:3002/job/jenkins_multibranch_example/pipeline-syntax/globals#docker)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +推荐 vscode 插件:[JenkinsFile Support](https://marketplace.visualstudio.com/items?itemName=ivory-lab.jenkinsfile-support)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +### 构建一个 Jenkins 多分支项目
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#### 步骤
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +1. 在 Jenkins 中创建一个 Jenkins 多分支项目
 | 
	
		
			
				|  |  | +2. 在 Jenkins 中填入必要的信息
 | 
	
		
			
				|  |  | +    - 基本信息
 | 
	
		
			
				|  |  | +    - 分支源及其凭据
 | 
	
		
			
				|  |  | +    - 触发器 webhook
 | 
	
		
			
				|  |  | +    - 按需配置其他
 | 
	
		
			
				|  |  | +3. 在项目中创建并编辑 Jenkinsfile
 | 
	
		
			
				|  |  | +4. 添加凭据对应协作人和应有权限
 | 
	
		
			
				|  |  | +5. 在 Jenkins 中点击扫描和构建并尝试构建
 | 
	
		
			
				|  |  | +6. 在项目中添加 webhook
 | 
	
		
			
				|  |  | +7. 测试 webhook 推送 (触发构建或者扫描日志时间改变就可以了)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#### 可选项
 | 
	
		
			
				|  |  | +- [邮件消息推送](https://plugins.jenkins.io/email-ext/)
 | 
	
		
			
				|  |  | +- [钉钉消息推送](https://jenkinsci.github.io/dingtalk-plugin/)
 | 
	
		
			
				|  |  | +- [企业微信推送](https://github.com/jenkinsci/qy-wechat-notification-plugin)
 | 
	
		
			
				|  |  | +- 以上插件均已安装,可以直接在 Jenkinsfile 中编写使用
 | 
	
		
			
				|  |  | +- 使用 [input](https://www.jenkins.io/zh/doc/book/pipeline/syntax/#input) 阻塞危险的构建,直到有效的输入确认
 | 
	
		
			
				|  |  | +- 如果需要`docker-compose`,则需要在运行节点安装,之后直接使用命令即可
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +### 注意事项
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | -推荐vscode插件:[JenkinsFile Support](https://marketplace.visualstudio.com/items?itemName=ivory-lab.jenkinsfile-support)  
 | 
	
		
			
				|  |  | +- 尽量使用 docker 容器而非执行shell命令以避免环境冲突,并且方便做滚动更新等操作
 | 
	
		
			
				|  |  | +- 如果只是要测试微调后 Jenkinsfile 可以用 Jenkins 的回放功能(点击具体构建,左边),然后再放进项目里,这样就不用一直 commit push
 | 
	
		
			
				|  |  | +- 对当前分支的 Jenkinsfile 更新不会影响到其他分支,在开发或者测试分支可以不用担心影响生产
 | 
	
		
			
				|  |  | +- 对 Jenkinsfile 的改动尽量独立为一个commit, 方便 git cherry-pick 合并单一commit到其他需要的分支
 | 
	
		
			
				|  |  | +- 多节点下尽量不要使用 agent any,鬼知道在哪执行去了
 |