I've been deep diving and vetting a lot of new technologies lately to improve productivity for myself and team(s). Some of the things I've been getting into:
So I figure I might as well create an experiment project and document the steps along the way for others to learn and partake. Let me preface and forewarn that this is mostly for educational purposes and is not recommended for production usage. Also to note that it does require some comfort at the command line
Pull-requests are welcomed 😍
An example of CI/CD with a simple go application utilizing a multistage docker build.
# creates a new image $ make build # runs the image $ make run
# installs deps etc $ make install # execute binary $ ./bin/cmd
# defaults to "8080" PORT=3000 # defaults to "Gopher" NAME="Edgar Allan Poe" # forces tests to fail FAILED=true
make help to list available commands:
$ make help Choose a command run in autoapp: install Install missing dependencies. Builds binary in ./bin build Creates a docker image of the app fail Forces a failed docker build of the app due to failing tests run Runs the current docker image on port 8080 clean Clean build files. Runs `go clean` internally fmt Runs gofmt on all source files test Runs all the tests. coverage Tests…
- I personally really 💚 Drone; It's ease of use, documentation, and containerization is Amazing! Well at least compared to travis, circle-ci, or jenkins. Fun fact... it can pretty much be deployed on anything. Also it looks to be a perfect match for ephemeral pods on k8s.
- I definitely prefer Quay's UI/UX, it's also
"supposedly"the most battle-tested/preferred at the moment 🤷🏽♂️. But it's also the most expensive, so I guess you get what you pay for.
- Spinnaker is a 🐻. But needless to say it's super powerful and flexible. You can unlock that power once you've figured out how to navigate the esoteric documentation. They do have a slack and forum, but I still found it a tad bit difficult getting help/advice on configurations, etc. But once it's up and running everything is ✅.