Building An Engineering Portfolio
Submitted By Jenkins User Garima Singh
Not only is Jenkins a go-to source for enterprise companies worldwide, but emerging engineers have also discovered its use to be a great teaching tool with multiple applications.
Organization: A technology institute in India
Programming Language: Node.js, HTML, CSS
Version Control System: GitHub
Build Tool: Maven
Community Support: Jenkins.io websites & blogs
Becoming an engineer on the heels of a Jenkins test-bed.
Background: An engineering student built a CI solution using Jenkins while attending a public engineering institution in India. The project was inspired by a blog post she read on the creation of a versatile Jenkins CLI, or command-line interface. Since Garima was the only developer on this small project, she chose to build a CI job based on the hypotheses that the build was indeed reasonable and that the testing strategy would be reusable.
Goal: Create a single pipeline that orchestrates the submission of hundreds of build jobs.
Solution & Results: The solution I built was just a test case I made to dive into everything Jenkins. It was a Python Script to implement basic Jenkins features without any external libraries. I started by investigating Jenkins API and HTTP Protocols and HTTP RFCs. My next step was to learn Curl Commands from which I made my starter project. It has two scripts: the first having all the functions and the second one with UnitTest Cases for each function in the first file.
I like Jenkins because of its user-friendly CLI and because there are no external dependencies for implementing the basic features of Jenkins. As the application grows, I will already have a CI in place to assist additional development efforts along the way. Also, I will know early on if anyone pushes a failed build or test to my project at a later stage. All of the features I’ve explored truly make Jenkins rock and, for newbies like me, it’s definitely a must-try for all.
By using Jenkins, I was able to:
- create a CI without any external dependencies
- ensure a reliable test-bed for future builds and releases
- get a great grade on my engineering assignment