.gitlab-ci.yml dosyanızda yapılandırılan job’ları çalıştıran
open source Golang uygulamasıdır. GitLab.com’da barındırılan projeler için GitLab
tarafından host edilen runner’lar kullanılır. Ancak custom GitLab server’ınız
varsa kendi datacenter’ınızda scalable runner’larınızı oluşturmanız gerekir.
Her runner bir sanal makine veya container’da çalışır. GitLab hosted runner’lar
job tamamlandığında silinir ve hiçbir job aynı makinede çalışmaz.
Scope
Tanımlanabilecekleri üç farklı scope bulunur:- Instance: GitLab’inizdeki tüm projelerde kullanılabilir. Bu runner’lara shared runner denir. GitLab adminleri yönetir. Halihazırda shared runner’larda çalışan en az işe sahip olan proje queue’da önceliklendirilir.
- Group: Belirli bir grubun altındaki projelerde kullanılabilir. Bu runner’lara group runner denir. Resource’u paylaşmak istiyorsanız veya birden fazla projenin pipeline’ını çalıştırmak istiyorsanız idealdir.
- Project: Sadece belirli bir projede kullanılabilir. Bu runner’lara spesific runner denir.
Tag
Runner’lar tag’lar ile etiketlenebilir. Bu sayede.gitlab-ci.yml dosyasında
job’lar tag’lar ile belirli runner’ları hedefleyebilir. Örneğin ruby çalıştırmak
için optimize edilmiş bir runner oluşturabilirsiniz.
Executor
Job için çalıştırma ortamını tanımlar ve bağımlılıkları sağlar. GitLab, job’ları Runner’lar ile konfigürasyonlarına göre eşleştirir. En yaygın executor’lar:- Shell: Job’ları shell komutları ile çalıştırır. Komutlar GitLab Runner’ın kurulduğu makinede local olarak çalıştırılır.
- Docker: Job’ları Docker container’larında çalıştırır.
