DevOps Articles

Increase memory limit for Composer

Gone are the days of stitching together disparate services in an effort to create a solid continue integration and deployment pipeline. GitLab has had it’s Runners for a while and recently GitHub stepped into the mix with their Actions offering. Because of this, using external services like Travis CI or […]

Only run step for specific version with GitHub Actions

With my recent exploration of GitHub Actions, I’ve had to figure out things that I’ve already figured out with other systems like GitLab Runners and Travis CI. One such thing is conditionally running steps. For things like code coverage, I’m only interested in sending off the coverage report to the […]

Moving from only syntax to rules syntax in GitLab CI/CD v13.x+

Saw a recent announcement from GitLab that the only and except syntax for GitLab CI/CD was going to be deprecated soon in the v13 release. Amendment: The only / except syntax isn’t actually being deprecated as pointed out by Jason Yavorska. It’s actually related to a template that is deprecating […]

Complete CI/CD pipeline with GitLab Runners

Automation is one of the best ways to improve productivity. Even as a development team of one, spending a bit of time on DevOps and improving your developer quality of life can pay off immensely. Automated tasks strip away cognitive load. No more forgetting to deploy code because the process […]

Solo developers should still do code reviews

As a single developer on a handful of projects, I’m a huge proponent for establishing systems and best practices, even if they don’t seem practical as an army of one. In the past I’ve written about making sure version control is in place even if you’re the only developer on […]

Stop blaming your hosting company for downtime

I was struck with downtime last week. Linode’s Fremont data center went offline in a big way. Service was interrupted for nearly 4 hours. Did I panic? OF COURSE I DID! At first at least. Thing is, when a site of mine goes down, I just assume that I had […]

Configuring Jest to show code coverage for all of your files

Jest is a great tool. It’s fast, actively maintained and has been working well for us with both our front-end and back-end systems. Simply put, Jest helps us make CrowdSync better and more stable. Out of the box though, code coverage is only shown for the files that you’ve written […]

Trigger a GitHub Pages rebuild with AWS Lambda and CloudWatch

GitHub Pages is pretty damn great. I’ve been using it for years now but one thing has always bugged me. If you want to schedule your posts in advance, they just never show up. Why? Because for posts to show up you have to trigger a rebuild of the project […]

Simple cache busting with Webpack

Here at CrowdSync, we’re huge fans of CloudFlare. As customers, we are leveraging the power of CloudFlare’s caching mechanisms. Part of our deployment process to production involving flushing the cache via the CloudFlare API. Problem there is that only solves half of the caching dilemma. Even with our CloudFlare cache […]

sudo without password

I’ve recently run into deployment scenarios where I need to have a unprivileged user account execute something privileged like restarting nginx. Sure, I could just do things with the root account, but most of my deployments are done via SSH commands and I don’t allow root logins directly on my […]

Writing unit tests for legacy code

I think one of my biggest gripes with adopting that TDD life is that I feel I’m in the minority with my friends even though the concept appears to be quite mainstream these days. One of the common pushbacks I receive is that it’s hard to write unit tests for […]

How I saw the test-driven light

Aside from dealing with financial transactions, I’ve generally avoided test-driven development as part of my day to day workflow. Why? The usual reasons, but mostly because I didn’t want to incur the overhead of additional development. As a single founder / developer you’re always looking for ways to lighten the […]

Simplifying Single Server Deployments

Last week I discussed the importance of version control for individuals but something I didn’t touch on was how version control systems can be used to simplify and/or automate deployments. I’ve been through the different setups out there, using plain old rsync, leveraging GitHub’s Post-Receive WebHook to call a URL […]

Version Control for Individuals

I find with a lot of folks I interact with, version control is considered something that you use when you are working on a team with multiple contributors. As an individual that is usually the sole contributor of my own projects, I have to disagree as version control is still […]