Depo betikleri
Depo betikleri, depo başına yapılandırdığınız (Ayarlar → Depolar → bir depo
satırındaki terminal simgesi) ve Control Center sunucusunun o deponun bir
alanın çalışma ağacına karşı çalıştırdığı shell betikleridir — ajanların
çalıştığı, <dataDir>/<workspaceId>/spaces/<spaceId>/repos/<repo>/ altındaki
yalıtılmış checkout.
İki türü vardır:
| Betik | Ne zaman çalışır | Ne için kullanılır |
|---|---|---|
| Kurulum | Bir alan için çalışma ağacı hazırlandıktan hemen sonra | Bağımlılıkları yükleme, dosya üretme, .env kopyalama |
| Arşiv | Bir çalışma ağacı yok edilmeden ya da çöp toplanmadan hemen önce | Çalışma ağacı dışındaki kaynakları temizleme (docker ağları, tüneller, harici durum) |
Betikler nerede çalışır
Bölüm başlığı “Betikler nerede çalışır”İki betik de bash -lc ile (bir oturum açma kabuğu; böylece Homebrew/nvm ile
kurulan araçlar PATH üzerinde olur), çalışma dizini çalışma ağacı olacak
şekilde ve şu ortam değişkenleri tanımlı olarak çalışır:
| Değişken | Değer |
|---|---|
CC_WORKSPACE_PATH |
Çalışma ağacı (betiğin cwd’si) |
CC_ROOT_PATH |
Kayıtlı kaynak depo — kendi checkout’unuz |
CC_SPACE_ID |
Çalışma ağacının ait olduğu alan |
CC_SPACE_NAME |
Alanın görünen adı |
CC_REPO_NAME |
Deponun görünen adı |
Örneğin, bağımlılıkları yükleyen ve deponun .gitignore ile dışlanan .env
dosyasını içeri alan bir kurulum betiği:
pnpm installcp "$CC_ROOT_PATH/.env" .envpnpm run buildBaşarısızlık davranışı
Bölüm başlığı “Başarısızlık davranışı”- Sıfırdan farklı bir kodla çıkan (ya da 5 dakikalık zaman aşımını aşan) bir kurulum betiği, alanın hazırlanmasını başarısız kılar: alan, yeniden deneme seçeneğiyle birlikte başarısız durumunu gösterir ve çalıştırmanın çıktı son kısmı kaydedilir. Yeniden deneme, temiz bir çalışma ağacı hazırlar ve betiği yeniden çalıştırır — kurulum betiklerini kısmi bir yüklemeden sonra yeniden çalıştırmanın işleyeceği şekilde yazın (paket yöneticileri zaten böyle davranır).
- Bir arşiv betiği en iyi çaba esasıyla çalışır: bir başarısızlık (ya da 2 dakikalık zaman aşımı) kaydedilir ama silmeyi asla engellemez. Arşiv, istemi yanıtlayacak kimsenin olmadığı GC yollarında çalışır (alan silindi, PR birleştirildi, planlanmış temizlik).
Kurulum yalnızca yeni bir çalışma ağacında çalışır: ajanları sıcak bir alana yeniden göndermek mevcut checkout’u yeniden kullanır ve kurulumun bedelini yeniden ödemez.
Çalıştırma geçmişi
Bölüm başlığı “Çalıştırma geçmişi”Her yürütme; durumu, süresi, çıkış kodu ve sınırlı bir çıktı son kısmıyla
kaydedilir ve aynı ayarlar iletişim kutusunda “Son çalıştırmalar” altında
görünür (repos.watchScriptRuns aboneliği bunu canlı olarak akıtır).
İzinler
Bölüm başlığı “İzinler”Betikler sunucunun yürüttüğü shell’dir; bu nedenle yazılmaları çalışma
alanı yöneticileriyle sınırlıdır ve processSpawn eylem sınıfıyla korunur —
süreç başlatan diğer tüm işlemleri kapılayan aynı koruma ağı.