Github Actions are Your Friend

I’ve recently started dabbling with Github Actions to run automated builds, deploys, and even smoke testing for my company’s REST microservices. So far, I’ve been very pleased with the capabilities. Despite my history of loving Jenkins, Github Actions have become invaluable for testing. It has allowed us to test our pull requests with the entire test suite before merging in to the main branches. All without the overhead of creating a new Jenkins job to achieve the same capabilities.

My most recent addition has been setting up our Artillery smoke testing to run daily against all of our environments. We were already running them on every deployment to an environment. Though, we found that external factors, unrelated to code, caused the builds to occasionally fail. Things such as routing or DNS changes in our VPC, for example. In order to not be surprised by these external changes, we now use Github Action’s cron capabilities to run them against all environments daily. This allows for us to get a Slack notification of failures before deployment of new code. Providing notifications closer to the time that the problem arose, rather than (at times) several days later.

I do feel the Github UI could use some improvement though. Only being able to pin 5 workflows, for example, makes finding the workflows more tedious than they ought to be. Furthermore, Github should have a timeout on waiting for a self-hosted runners. If the AWS runner fails to get provisioned, Github just waits endlessly for it without human intervention. This has caused us (and others) some headaches.


Leave a Reply

Your email address will not be published. Required fields are marked *