GitHub Actions: Self-Hosted Runners
When GitHub's runners aren't enough—whether it's cost, performance, or specialized hardware—here's how to run your own infrastructure for Actions.
When GitHub's runners aren't enough—whether it's cost, performance, or specialized hardware—here's how to run your own infrastructure for Actions.
Slow CI is a productivity killer. Here's how to slash your GitHub Actions workflow times—with real examples, benchmarks, and the caching strategies that actually work.
Push and pull_request are just the beginning. Here's how to trigger workflows from Slack, schedule nightly builds, chain workflows together, and turn GitHub into a surprisingly capable automation platform.
Your GitHub Actions workflows have access to your secrets, your code, and your deployment pipelines. Here's how to lock them down before someone else does.
Your GitHub Actions workflows don't have to be unmaintainable YAML spaghetti. Here are the design patterns, refactoring techniques, and organizational strategies that keep workflows clean as they grow.
GitHub Actions can do far more than run your tests. Here's a tour of the surprising, useful, and unconventional things people build with workflows—and the start of a series going deeper.
NotificationCenter finally gets first-class Swift Concurrency support with MainActorMessage and AsyncMessage. Here's how to use them—and why they matter.
I built a CLI that converts documentation docsets to Markdown files—because Apple's online docs don't work without JavaScript, and I don't want MCPs in my workflow.
Swift Concurrency has been available for years, but many developers still avoid it. Swift 6.2's Approachable Concurrency changes that—here's what it means for your code.
I've been building command-line tools for my own workflows, and I've learned a few things about what makes a CLI actually pleasant to use. Here's what I wish someone had told me earlier.