Ken Muse
Building GitHub Runner Images With an Action Archive Cache
Minimizing network activity improves your build times, speeds up builds, and reduces costs. With ARC, you rely on multiple Actions steps in your workflow. What if you could avoid needing to download your most frequently used Actions? This post walks you through creating images with an Actions archive cache to eliminate those downloads.

Read this article

Building GitHub Actions Runner Images With A Tool Cache
If you’re going to build custom images for ARC or standalone VM runners, then you probably want to take some time to preload it with the tools that matter to your builds. If you want that process to work well for the GitHub-provided tools and actions/setup- Actions, then you’ll want to know how to prepopulate the runner’s tool cache.

Read this article

What Is ARC Doing & How Does It Interact With Kubernetes?
Understanding ARC begins with understanding what it does (and does not do) to create runners on Kubernetes. The process is surprisingly straight-forward, and understanding it is key to mastering ARC.

Read this article

The New DevContainer initializeCommand
The world of dev containers is constantly changing. Sometimes, even with community-driven specifications, there is a bit of room for interpretation. The initializeCommand lifecycle script is a great example of this, and the specification has been updated to align with the implementations. Learn how this affects your dev containers (and why your scripts should always be idempotent).

Read this article

What Developers Should Know About Floating Point Numbers
Ever wondered why some numbers never seem to add up? Or why adding 0.1 and 0.2 doesn’t exactly equal 0.3 in JavaScript? Or why adding two numbers sometimes gives an unexpected value with floats and doubles in C# and Java? It’s time to understand floating point numbers and the magic that makes them operate.

Read this article

GitHub Actions and Monitoring

GitHub Actions and Monitoring

What’s the best way to test drivers or deployments using GitHub Actions? Today we explore why you shouldn’t run your pipeline on the system under test.

Read this article

Troubleshooting Git Authentication
Whether you’re dealing with bad credentials or connectivity issues, there are a few tricks with Git that can make it easier to understand what’s happening. This post will dive into features of Git that you can use for understanding the credential flow and troubleshooting problems.

Read this article

Getting User Input When Starting a Dev Container
Sometimes you just need a little human interaction. And sometimes you need that to happen when you’re starting up a dev container so you can configure the environment. Thankfully, there is a way to get user input that works with most of the dev container implementations.

Read this article

Mounting Files as Volumes

Mounting Files as Volumes

Part of mastering Kubernetes or containers is understanding how they work and how they interact with the host system. You’ve probably seen how to mount drives or folders into a containerized system, but there is another approach – mounting a file like a drive. This post will explore how to do this using a loop device in Linux.

Read this article

Understanding Container Image Layers
Working with containers, one concept that seems to always confuse developers and administrators is layers. Despite the elegance and simplicity of the design, they are still a black box to most teams. In this post, I’ll explain how they work conceptually and the basis of their implementation.

Read this article