Vaka dosyası
Karar vermeden önce kanıtı ayır.
Dört görünüm aynı durumu farklı açıdan açar. Bir görünüm seçmek ilerleme kaydı oluşturmaz.
Görev
Bu durumda neyi değerlendireceksin?
Senaryo sonunda kullanıcı,
- 01
yerelde çalışan bir uygulamanın CI içindeki image build adımında başarısız olmasını “Docker bozuk” veya “Staging bozuk” diye genellemeden inceleyebilmelidir.
- 02
Build context, Dockerfile girdileri, image artefact'i, commit ve pipeline kanıtını birbirinden ayırmalı;
- 03
eksik bir girdiyi kanıtlamadan retry veya deployment önermemelidir.
Rol ve ekip
- Rolün
- Bir web ürününde ilk ayındaki junior geliştiricisin. Pull request'in için oluşturulan CI çalışması kırmızı görünüyor.
- Ekip ve ürün bağlamı
- Ekip, uygulamayı doğrulamak için temsili bir image build job'ı çalıştırıyor. Image daha sonra test ve Staging deployment adımlarına girdi olabilir. Aşağıdaki job ve step isimleri bu senaryoya aittir; bütün CI platformları veya ekipler için zorunlu değildir.
Kanıt sınırı
- Bildiğin
- Aynı commit için CI
build-imagejob'ında Dockerfile'ın dependency manifest'ini build context içinde bulamadığı bir hata var. Image üretilmemiş; image'a bağlı test vedeploy-stagingjob'ları başlamamış. - Kasıtlı olarak eksik bırakılan
- Manifest dosyasının repository'de nerede olması gerektiği, CI'nin hangi çalışma dizininden build aldığı,
.dockerignoreveya build komutunun kapsamı, local ve CI toolchain farkları, aynı commit'in yerelde gerçekten image üretip üretmediği ve retry politikasının ne olduğu bilinmiyor.
Temsili kayıt
Temsili CI sonucu — gerçek bir şirket kaydı, platform ekranı veya alıntı değildir.
Workflow: verify-change
Run: #9127 — Attempt: 1
Trigger: pull_request
Commit: 4f9a1c8
Build context: services/web
Job özeti:
build-image— failedtest-image— not started — needs:build-imagedeploy-staging— not started — needs:test-image
Dockerfile step özeti:
load build definition— passedload build context— passedCOPY package.json pnpm-lock.yaml ./— failed
İlk anlamlı hata satırları:
[build] failed to calculate checksum for context file
[build] "/pnpm-lock.yaml": not found
[build] image was not producedStaging deployment: not attempted
Bu artefact'taki build context, job'ın temsili çalışma alanıdır; her projede aynı dizin veya komut kullanılmaz. not started, bağlı job'ın kendi test veya deployment işlemini çalıştırdığı ve başarısız olduğu anlamına gelmez. İlk anlamlı hata satırı araştırmayı COPY girdisine daraltır; tek başına kök nedeni kanıtlamaz.
Bölüm 1 / 3
Temsili CI sonucu — gerçek bir şirket kaydı, platform ekranı veya alıntı değildir.
Workflow: verify-change
Run: #9127 — Attempt: 1
Trigger: pull_request
Commit: 4f9a1c8
Bu artefact'taki build context, job'ın temsili çalışma alanıdır; her projede aynı dizin veya komut kullanılmaz. not started, bağlı job'ın kendi test veya deployment işlemini çalıştırdığı ve başarısız olduğu anlamına gelmez. İlk anlamlı hata satırı araştırmayı COPY girdisine daraltır; tek başına kök nedeni kanıtlamaz.
Karar oynatıcısı
İlerlemen yükleniyor…