DevOps
Jenkins 中 Lightweight 拉取代码问题分析
· ☕ 3 分钟
1. 遇到了什么问题 Jenkins 执行日志报错: 1 2 3 4 5 6 Started by user admin Lightweight checkout support not available, falling back to full checkout. Checking out git https://github.com/shaowenchen/pipeline-test.git into /var/jenkins_home/workspace/abc@script to read Jenkinsfile ... ... Unable to access '.git/index.lock': File exists. 原因分析: 简单介绍一下 Jenkins 的部署情况,Jenkins 使用 Helm Chart 部署在 Kubernetes,使用 Kubernetes 动态 Pod 进行构建。Jenkins 的 /var/jenkins_home 挂载到 PV

Jenkins 中的构建产物与缓存
· ☕ 3 分钟
在 CICD 的流程中,需要保存的产物主要有两类,构建产物和缓存。构建产物是最终的执行结果,缓存是为了优化下一次的构建速度。本篇主要描述的是在 Jenkins 中如何对构建产物和缓存进行归档,并结合对象存储进行实践。有部分示例使用的是 在 Kubernetes 上动态创建 Jenkins Slave 进行构建,配置

Jenkins 插件开发
· ☕ 4 分钟
使用 Jenkins 总是离不开各种各样的插件,为了更好的实践 DevOps ,我们也应该具备开发插件的能力,使整个流程都能够在 Jenkins 中汇合。 1. Jenkins 插件 1.1 插件的生态 Jenkins 前身 Hudson 始于 2004 ,历经 16 年,依然作为主流的 CI/CD 引擎。除了,Jenkins 提供了 Master-Agent 分布式构建、Pipeline 编排的功

Kubernetes Windows 节点动态提供 Jenkins Agent
· ☕ 1 分钟
在前面两篇文档,在 Kubernetes 上动态创建 Jenkins Slave 和 Kubernetes 添加 Windows 节点提供 Jenkins 构建动态 Agent 的基础之上,本篇文档主要尝试在 Kubernetes 上动态提供 Windows 构建 Agent 。 1. 新增流水线 Kubernetes 与 Jenkins 集成部分可以参考上面的两篇文档,这里直接新建两条流水线进行测试。 windows - jenkins 内置的流水线示例 1 2 3 4 5 6 7 8 9 10

GitHub 三种合并代码方式的差别
· ☕ 1 分钟
1. Create a merge commit PR Commit 记录: 1 2 commit c1 commit c2 集成分支 Commit 记录: 1 2 3 commit PR #NUM commit c2 commit c1 Create a merge commit 会将 PR 中的全部 Commit 记录完整带到集成分支中,同时增加一条 PR Commit 信息。 2. Squash and merge PR Commit 记录: 1 2 commit s1 commit s2 集成分支 Commit 记录: 1 commit PR #NUM Squash and merge 合并之后,集成分支只会增加一条 Commit 记录。观感