I'm currently converting our CI/CD pipeline from GitLab to GitHub Actions, and I need some guidance on using Actions Runner Controller (ARC). We are using Docker-in-Docker mode and are struggling to visualize how to organize our jobs effectively. In GitLab, we have a structured way to run tests with service containers. However, I find that in GitHub Actions, changing the job container seems to replace the runner itself, which leads to issues like not being able to spin up service containers when needed.
This situation is forcing us to either develop a huge, multipurpose runner image or create custom GitHub Actions to keep the runner and containers separate, which feels unnecessary and might bind us too tightly to GitHub Actions. I'm curious if others have faced similar challenges and how you've structured a robust pipeline with ARC. Any insight would be appreciated!
4 Answers
Rather than forcing GitLab's structure onto GitHub Actions, think about running your tests in dedicated Kubernetes jobs instead of tying everything to runner containers. This way, you could trigger the jobs directly from your workflow, and it feels much more Kubernetes-friendly.
It's essential to ask if this tool fits your workflow. Sometimes, using a unified tool for all jobs isn't the best. You might consider leaving the Docker-in-Docker setup commented out and adding containers in your values files instead. Many ARC users bring in multiple steps without issues by managing them in the script section.
I haven’t used ARC, but I wonder why it seems impossible to use services like in GitLab? Transitioning from GitLab to GitHub isn't a straightforward transfer, as their formats differ. Misunderstanding how containers work in these environments is common. You should ideally run your tests in a separate environment rather than mixing builds and runtimes.
Are you indicating that service containers can't be used in self-hosted GitHub Actions? I might have misunderstood. From what I gather, you can run service containers, but you want to use a custom container for your tests, impacting the runner's ability to start services.
Related Questions
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically
[Centos] Delete All Files And Folders That Contain a String