|
@@ -2,11 +2,44 @@
|
|
|
|
|
|
这是一个 Jenkins 多分支自动化部署运行参考项目
|
|
这是一个 Jenkins 多分支自动化部署运行参考项目
|
|
Jenkins 会根据根目录中的 [Jenkinsfile](./Jenkinsfile) 进行自动编译或运行
|
|
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/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,鬼知道在哪执行去了
|