Aracılığıyla paylaş


İşlem hattı betiklerinde Git komutlarını çalıştırma

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Git komutları, Microsoft tarafından barındırılan ve şirket içinde barındırılan aracılarda derleme iş akışları için kullanılabilir. Örneğin, bir özellik dalında sürekli entegrasyon (CI) derlemesi tamamlandıktan sonra bu dalı main ile birleştirebilirsiniz. Bu makalede, Azure Pipelines derleme betiklerinde Git komutlarının nasıl çalıştırılacakları açıklanmaktadır.

Git komutlarını çalıştırmak için betikleri etkinleştirin

GitHub'ın Azure DevOps hesabınızın varsayılan kimliğini kullandığına emin olun. Gerekirse, Github kullanıcısını checkout işleminden sonraki ilk adım olarak ayarlayın.

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

Derleme hizmetine izin verme yetkisi tanıma

Proje derleme hizmetinin kaynak depoya yazma izinleri olmalıdır. Gerekli izinleri aşağıdaki gibi ayarlayın:

  1. Projenizin Proje Ayarları'ndaRepos altında Depolar'ı seçin.

  2. Projedeki tüm depoların izinlerini ayarlamak için Tüm depolar sayfasında Güvenlik'i seçin. Alternatif olarak, Git komutlarını çalıştırmak istediğiniz depoyu seçin ve ardından bu deponun sayfasında Güvenlik'i seçin.

    Depolar için Güvenlik'in seçilmesini gösteren görüntü.

  3. Kullanıcı izinleri sayfasında Derleme Hizmeti kimliğini seçin. < altında >'nı değil, <'ni seçtiğinizden emin olun. Varsayılan olarak, bu kimlik depodan okuyabilir ancak hiçbir değişiklik gönderemez.

  4. Listeyi açın ve çalıştırmak istediğiniz Git komutları için gereken her iznin yanındaki İzin Ver'i seçin; genellikle Dal oluştur, Katkıda Bulun, Oku ve Etiket oluştur'u seçin.

    Depolara kimlik izinleri verme işlemini gösteren ekran görüntüsü.

Betiklerin sistem simgesine erişmesine izin ver

Betiklerin GitHub OAuth belirtecine erişmesine izin vermek için:

YAML işlem hattınıza checkout olarak ayarlanmış persistCredentialsbir true adım ekleyin.

steps:
- checkout: self
  persistCredentials: true

checkout adımı hakkında daha fazla bilgi için steps.checkout tanımına bakın.

Yerel depoyu temizle

Derleme işlem hattı, yerel depodaki yerel dalları silme veya yerel değişiklikleri geri alma git config gibi bazı değişiklikleri otomatik olarak temizlemez. Kendi barındırılan aracı kullanarak sorunlarla karşılaşırsanız, derlemeyi çalıştırmadan önce depoyu temizleyebilirsiniz.

Genel olarak, kendi kendine barındırılan aracıların daha hızlı performansı için depoyu temizlemeyin. Temizleme, Microsoft tarafından barındırılan aracılar için etkili değildir çünkü her seferinde yeni bir aracı kullanırlar. Daha fazla bilgi için Aracıdaki yerel depoyu temizleme sayfasına bakın.

Derlemeyi çalıştırmadan önce kod deposunu temizlemek için:

clean adımında true, checkout olarak ayarlayın. Bu seçenek, getirmeden önce git clean -ffdx ardından git reset --hard HEAD çalıştırır.

steps:
- checkout: self
  clean: true

İşlem hattı düzenleyicisinde Değişkenler'i seçin, değişkeni oluşturun veya değiştirin Build.Clean ve değerini olarak sourceayarlayın.

Git komut örnekleri

Aşağıdaki örneklerde, bir Komut satırı görevi ve bir Batch script görevi içinde Git komutları çalıştırılır.

Deponuzdaki dosyaları listeleme

Git deposundaki dosyaları listelemek için YAML işlem hattında Komut satırı görevini aşağıdaki gibi kullanın:

- task: CmdLine@2
  inputs:
    script: 'git ls-files'

Özellik dalını main ile birleştir

Aşağıdaki Klasik işlem hattı örneği, derleme başarılı olursa CI derlemesini main ile birleştirir.

  1. Deponuzun kökünde aşağıdaki içeriklerle merge.bat adlı bir dosya oluşturun:

    @echo off
    ECHO SOURCE BRANCH IS %BUILD_SOURCEBRANCH%
    IF %BUILD_SOURCEBRANCH% == refs/heads/main (
       ECHO Building main branch so no merge is needed.
       EXIT
    )
    SET sourceBranch=origin/%BUILD_SOURCEBRANCH:refs/heads/=%
    ECHO GIT CHECKOUT MAIN
    git checkout main
    ECHO GIT STATUS
    git status
    ECHO GIT MERGE
    git merge %sourceBranch% -m "Merge to main"
    ECHO GIT STATUS
    git status
    ECHO GIT PUSH
    git push origin
    ECHO GIT STATUS
    git status
    
  2. Klasik işlem hattınızın Tetikleyiciler sekmesinde Sürekli tümleştirmeyi etkinleştir onay kutusunu seçin.

  3. Dal filtreleri ve Yol filtreleri'nin altında, Derlemeye Dahil Et veya Dışla olarak dalları ve yolları seçin.

  4. İşlem hattınızda son görev olarak bir Batch betiği ekleyin.

  5. Görev yapılandırmasındaki Yol'un altında ,merge.bat dosyasının konumunu ve adını girin.

Sıkça Sorulan Sorular

Uzak depom GitHub'da veya Bitbucket Cloud gibi başka bir Git hizmetindeyse Git komutlarını çalıştırabilir miyim?

Evet, uzak deponuz GitHub'da veya Bitbucket Cloud gibi başka bir Git hizmetindeyse Git komutlarını çalıştırabilirsiniz.

Git komutlarını çalıştırmak için hangi görevleri kullanabilirim?

Git komutlarını çalıştırmak için aşağıdaki Azure Pipelines görevlerini kullanabilirsiniz:

Betik gönderildiğinde CI derlemesini tetiklemekten nasıl kaçınabilirim?

Betik çalıştırıldığında CI derlemesini tetiklememek için göndereceğiniz iletinin veya açıklamanın içerisine [skip ci] ekleyin. Örneğin:

  • git commit -m "This is a commit message [skip ci]"
  • git merge origin/features/hello-world -m "Merge to main [skip ci]"

Azure Repos Git, Bitbucket Cloud, GitHub veya GitHub Enterprise Server işlemeleri için aşağıdaki çeşitlemelerden herhangi birini de kullanabilirsiniz:

  • [skip ci] veya [ci skip]
  • skip-checks: true veya skip-checks:true
  • [skip azurepipelines] veya [azurepipelines skip]
  • [skip azpipelines] veya [azpipelines skip]
  • [skip azp] veya [azp skip]
  • ***NO_CI***

İşlem hatlarını çalıştırmak için bir aracıya ihtiyacım var mı?

Evet, derleme veya yayın işlem hattınızı çalıştırmak için en az bir aracıya ihtiyacınız vardır.

Sorunları nasıl giderebilirim?

Bkz . İşlem hattı çalıştırma sorunlarını giderme.

Varsayılan bir aracı havuzu seçememeyi veya işlem hattı çalıştırmamı kuyruğa almama sorununu nasıl düzeltebilirim?

Bkz. Aracı havuzları oluşturma ve yönetme.

"‘Hata: yerel sertifika sağlayıcısı alınamıyor’ hatasıyla başarısız olan NuGet yükleme görevimi nasıl düzeltebilirim?"

Güvenilen bir kök sertifika ekleyerek bu sorunu düzeltebilirsiniz. Ortam değişkenini NODE_EXTRA_CA_CERTS=file derleme aracınıza veya görev değişkenini NODE.EXTRA.CA.CERTS=file işlem hattınıza ekleyin.

Bu değişken hakkında daha fazla bilgi için Node.js belgelerindeki NODE_EXTRA_CA_CERTS=file bölümüne bakın. İşlem hattınızda değişken ayarlama yönergeleri için bkz. İşlem hattında değişkenleri ayarlama.

Şirket içi Azure DevOps Server'ımda bu özelliklerden bazılarını neden göremiyorum?

Bu özelliklerden bazıları yalnızca Azure DevOps Services'te kullanılabilir ve şirket içi Azure DevOps Server'da kullanılamaz. Bazı özellikler yalnızca Azure DevOps Server'ın en son sürümünde kullanılabilir.