## Jenkins 多分支流水线参考项目 这是一个 Jenkins 多分支自动化部署运行参考项目 Jenkins 会根据根目录中的 [Jenkinsfile](./Jenkinsfile) 进行自动编译或运行 目录下的示例 [Jenkinsfile](./Jenkinsfile) 可以拷贝修改后直接使用 如果需要更多相关信息可以参考: [Jenkinsfile 入门](https://www.jenkins.io/zh/doc/book/pipeline/jenkinsfile/) [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`,则需要在运行节点安装,之后直接使用命令即可 ### 注意事项 - 尽量使用 docker 容器而非执行shell命令以避免环境冲突,并且方便做滚动更新等操作 - 如果只是要测试微调后 Jenkinsfile 可以用 Jenkins 的回放功能(点击具体构建,左边),然后再放进项目里,这样就不用一直 commit push - 对当前分支的 Jenkinsfile 更新不会影响到其他分支,在开发或者测试分支可以不用担心影响生产 - 对 Jenkinsfile 的改动尽量独立为一个commit, 方便 git cherry-pick 合并单一commit到其他需要的分支 - 多节点下尽量不要使用 agent any,鬼知道在哪执行去了