Jenkins
Build Artifacts and Cache in Jenkins
· β˜• 5 min read
In a CICD flow, there are two main kinds of things that need to be saved: build artifacts and caches. Build artifacts are the final execution result, and caches exist to speed up the next build. This post mainly describes how to archive build artifacts and caches in Jenkins, along with a hands-on example backed by object storage.

Jenkins Plugin Development
· β˜• 7 min read
Using Jenkins always means dealing with all kinds of plugins. To practice DevOps better, we should also be capable of developing plugins ourselves, so the whole process can converge inside Jenkins. 1. Jenkins Plugins 1.1 The Plugin Ecosystem Jenkins’ predecessor Hudson started in 2004, and 16 years on it is still a mainstream CI/CD engine.

Kubernetes Windows Nodes Dynamically Provide Jenkins Agents
· β˜• 2 min read
Building on the previous two documents, Creating Jenkins Slaves Dynamically on Kubernetes and Adding Windows Nodes to Kubernetes to Provide Dynamic Jenkins Build Agents, this document mainly attempts to dynamically provide Windows build agents on Kubernetes. 1. Adding Pipelines For the Kubernetes and Jenkins integration part, refer to the two documents above; here we simply create two pipelines to test with.

Analyzing the "not a tree" Git Operation in Jenkins
· β˜• 4 min read
1. Problem Description When a Webhook was configured to automatically trigger a Jenkins pipeline, the following error occurred: 1 2 3 hudson.plugins.git.GitException: Command "git checkout -f 23b446ea" returned status code 128: stdout: stderr: fatal: reference is not a tree: 23b446ea 2. How Git Manages Versions Git is a content-addressable filesystem. Git maintains a sha tree, and any historical node can be traced back to via its sha value.

Building an Automated Test System with Kubernetes and Jenkins
· β˜• 6 min read
1. Test Layering The purpose of testing is to verify expected behavior and uncover latent defects. Testing strengthens confidence that a qualified product can be delivered, and it is what makes agile iteration possible. You could say that testing determines the development pace of a product. The network model has the seven-layer OSI and the four-layer TCP, while development patterns include MTV, MVC, MVP, MVVM, and so on.