Recent Articles - CI/CD

Quickly Pin Python Package Versions
Quickly Pin Python Package Versions
Mar 6, 2024 · 5 min read

Pinning package versions is important for reproducible builds and saving future you from headaches.


Use GitHub Actions Timeouts to Protect Your Budget
Use GitHub Actions Timeouts to Protect Your Budget
Nov 5, 2023 · 4 min read

The default job timeout of 6 hours is unreasonably long.


Keep Lerna Monorepos Updated with Renovate
Keep Lerna Monorepos Updated with Renovate
Nov 4, 2023 · 9 min read

Keeping dependencies up to date is important for every codebase, and there are a few strategies for Lerna monorepos.


Skippable GitHub Status Checks Aren't Really Required
Skippable GitHub Status Checks Aren't Really Required
Jul 25, 2023 · 5 min read

If your GitHub branch protection rule requires a status check, but that status check can be skipped, you aren't actually protected.


Linting Markdown files with markdownlint
Linting Markdown files with markdownlint
Apr 5, 2023 · 2 min read

Markdown's syntax is easy to learn, and even though the syntax is forgiving, linting can help you avoid unexpected issues.


Reporting Lerna Monorepo Test Coverage to Codecov
Reporting Lerna Monorepo Test Coverage to Codecov
Feb 20, 2023 · 3 min read

It's not straightforward, and you likely can't use preexisting CI tasks.


Publishing Docker Images with GitHub Actions
Publishing Docker Images with GitHub Actions
Feb 20, 2021 · 7 min read

Publishing Docker images is a common CI/CD task, and the tight integration GitHub Actions has with GitHub repositories makes it a great tool for the job.


Publishing Docker Images with CircleCI
Publishing Docker Images with CircleCI
Feb 15, 2021 · 8 min read

Publishing Docker images is a common CI/CD task, and the flexibility CircleCI offers makes it a great tool for the job.


Linting Dockerfiles with Hadolint
Linting Dockerfiles with Hadolint
Aug 10, 2020 · 3 min read

Linters don't just enforce style guidelines, they also catch potential issues. hadolint (Haskell Dockerfile Linter) is the most popular linter for Dockerfiles, and it's incredibly easy to use.


Keep Docker Base Images Updated with Renovate
Keep Docker Base Images Updated with Renovate
Jul 30, 2020 · 6 min read

Just like with libraries used in code, keeping your Docker base images up to date is a good security practice.


Keep npm Packages Updated with Renovate
Keep npm Packages Updated with Renovate
Jul 19, 2020 · 5 min read

It's important to keep your npm packages updated for security reasons, and it's really easy to do automatically with Renovate.


Testing Docker Images with Container Structure Test
Testing Docker Images with Container Structure Test
Jul 18, 2020 · 4 min read

Just because a Docker image builds successfully doesn't mean it will perform as expected. Google's container Structure Test tool helps you check images to make sure they're working as intended.