March 9th, 2018
What I Learned About TravisCI
My MEAN stack prototype is the first personal project that uses Continuous Integration (CI). Continuous Integration is great and I will likely use it in all future projects.
So what is CI? Continuous Integration is the practice of merging code in development into a main repository on a regular basis. On each of these merges, testing suites and builds are executed automatically by a tool separate from the main codebase1. This allows for early detection of bugs and helps avoid the nightmare of backtracking through many commits to see where some functionality broke. With CI each time a commit is made the developer knows if any existing code broke. Of course this requires some thorough testing suites to be created (something I often cut corners on admittedly).
March 17th, 2018
Creating a MEAN Stack Prototype
Much of my work lately has been in preparation for a personal website that I'm going to build (and where this blog post will call home!). The website is going to contain my resume, blog posts, and more. I am really excited to get started building it!
September 21st, 2018
Exploring Jenkins and the Job DSL Plugin
So far in my DevOps journey I've explored Terraform and how to use it to deploy AWS Lambda Infrastructure. In this post I explore Jenkins, which is a Continuous Integration and Continuous Delivery (CI/CD) tool used for automating tasks.
Jenkins is not my first glance into the world on Continuous Integration (CI). That came with my post on TravisCI, which is a CI tool that hosts tasks on a server (free of charge!). I still use TravisCI to help unit test my code every time I push to GitHub.
November 15th, 2022
Building and Testing Go Code using Please Build and GitHub Actions
During software development, it's important to test logic and perform static code analysis to ensure programs meet certain standards. Build tools and CI/CD platforms help developers automate these tasks. There are many different build tools, such as Make, Bazel, and Please, along with many CI/CD platforms, such as Jenkins, TravisCI, and GitHub Actions (to name a few). Due to a wide variety of choices, it can be overwhelming for engineers to pick the best option for their codebase.
Although I've experimented a bit with TravisCI in the past, most of my CI/CD work up until now has been on Jenkins. Outside of language or platform specific build tools (such as CMake or Webpack), I haven't used many language-agnostic build tools in my code up to this point. While designing my go-programming repository, which contains Go programming language code samples, I decided to work with a new build tool and CI/CD platform.