
Modern CI/CD - Part 1
07/07/24 β’ 24 min
What does it look like to build a modern CI/CD pipeline from scratch in 2024? While many of you would pick GitHub Actions and be done with it, how do you run it locally? And what do you need to do to get caching to work?
Tom Chauveau joins us to help Alex Sims build a modern CI/CD pipeline from scratch. We start with a Remix app, write the CI/CD pipeline in TypeScript and get it working locally. While we don't finish, this is a great start (according to Alex).
This was recorded in January 2024, just as Dagger was preparing to launch Functions in the v0.10 release. While many things have improved in Dagger since then, the excitement & the joy of approaching CI/CD with this mindset have remained the same.
LINKS
- π¬ Modern CI/CD from Scratch (using Dagger TypeScript Modules)
- π Introducing Dagger Functions (a.k.a. Dagger Modules)
- π Daggerverse
EPISODE CHAPTERS
- (00:47) - Intro
- (01:35) - Current CI/CD pipeline
- (03:40) - Why not a single pipeline stage?
- (04:29) - Dagger expectations
- (05:18) - Thinking of retiring GitHub Actions
- (05:48) - Why the GitHub Actions & Jenkins split?
- (06:46) - TypeScript in Dagger Modules
- (08:40) - Modules extend the Engine API
- (09:45) - Plan for today
- (10:57) - Pairing session conclusions
- (12:11) - Is it faster?
- (13:10) - Re-using the cache between runs
- (14:50) - Key takeaways
- (19:04) - What comes next?
- (22:43) - Not if you are using Jenkins
- (23:33) - Thank you
What does it look like to build a modern CI/CD pipeline from scratch in 2024? While many of you would pick GitHub Actions and be done with it, how do you run it locally? And what do you need to do to get caching to work?
Tom Chauveau joins us to help Alex Sims build a modern CI/CD pipeline from scratch. We start with a Remix app, write the CI/CD pipeline in TypeScript and get it working locally. While we don't finish, this is a great start (according to Alex).
This was recorded in January 2024, just as Dagger was preparing to launch Functions in the v0.10 release. While many things have improved in Dagger since then, the excitement & the joy of approaching CI/CD with this mindset have remained the same.
LINKS
- π¬ Modern CI/CD from Scratch (using Dagger TypeScript Modules)
- π Introducing Dagger Functions (a.k.a. Dagger Modules)
- π Daggerverse
EPISODE CHAPTERS
- (00:47) - Intro
- (01:35) - Current CI/CD pipeline
- (03:40) - Why not a single pipeline stage?
- (04:29) - Dagger expectations
- (05:18) - Thinking of retiring GitHub Actions
- (05:48) - Why the GitHub Actions & Jenkins split?
- (06:46) - TypeScript in Dagger Modules
- (08:40) - Modules extend the Engine API
- (09:45) - Plan for today
- (10:57) - Pairing session conclusions
- (12:11) - Is it faster?
- (13:10) - Re-using the cache between runs
- (14:50) - Key takeaways
- (19:04) - What comes next?
- (22:43) - Not if you are using Jenkins
- (23:33) - Thank you
Previous Episode

Let's build a CDN - Part 1
This started as a conversation between James A Rosen & Gerhard in August 2023. Several months later, it evolved into a few epic pairing sessions captured in these GitHub threads:
The last pairing session eventually lead to π§ Kaizen! Should we build a CDN? This is the follow-up to that. How far did we get in 1 hour?
LINKS
- The 5-hour CDN
- varnish - Docker Official Image
- Introduction to Varnish
- Magento2 Varnish config
- Magento Internals: Cache Purging and Cache Tags
- Varnish modules
EPISODE CHAPTERS
- (00:00) - Intro
- (02:08) - The 5-hour CDN
- (03:44) - Varnish container image
- (05:00) - Varnish container image command
- (06:31) - Local-friendly Varnish container image
- (06:44) - Varnish command-line options
- (08:30) - Varnish parameters
- (09:45) - Experimenting with Varnish locally
- (12:36) - Varnish purging
- (15:22) - Backend fetch failed
- (16:20) - Varnish debug mode & logs
- (17:29) - Why can't we query the backend?
- (21:08) - Why is the backend sick?
- (22:49) - That's the problem!
Next Episode

Access your Kubernetes pods anywhere
How does Michal Kuratczyk, Staff Software Engineer at RabbitMQ, access Kubernetes workloads securely, from anywhere? Regardless whether it's a Google Kubernetes Engine (GKE) cluster or Kubernetes in Docker (KiND), Tailscale is a simple solution for this particular use case. This also makes it easy to share private services with all devices on a tailnet, including with friends that want to access them on a smartphone.
Watch the demo π¬ Access your Kubernetes pods anywhere
If you want to watch the full, 32 minutes-long video, go to π https://makeitwork.gerhard.io
LINKS
- π¬ Access your Kubernetes pods anywhere
- Tailscale Kubernetes Operator
- RabbitMQ Cluster Kubernetes Operator
- π¬ TGIR S01E07: How to monitor RabbitMQ?
- ποΈ Observe and Understand RabbitMQ - RabbitMQ Summit 2019
- π¬ Observe and understand RabbitMQ - RabbitMQ Summit 2019
EPISODE CHAPTERS
- (00:00) - INTRO
- (05:12) - DEMO STARTS
- (06:11) - RabbitMQ in Kubernetes
- (07:32) - Tailscale in Kubernetes
- (11:59) - Magic DNS
- (13:31) - Let me connect to it
- (15:33) - Is this the last RabbitMQ 3 minor?
- (17:12) - An alternative way to expose a service
- (19:11) - Works on any tailnet device
- (22:04) - How do we continue?
- (23:26) - Have you tried upgrading the operator?
- (24:23) - Can we try it?
- (25:43) - DEMO ENDS
- (25:54) - Exit nodes & subnet routers
- (28:50) - OUTRO
If you like this episode youβll love
Episode Comments
Generate a badge
Get a badge for your website that links back to this episode
<a href="https://goodpods.com/podcasts/make-it-work-340598/modern-cicd-part-1-60256067"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to modern ci/cd - part 1 on goodpods" style="width: 225px" /> </a>
Copy