Azure Pipelines’da yapıtlar

Not

Daha hızlı performans için derleme yapıtlarından ( ve DownloadBuildArtifacts@0 ) işlem DownloadBuildArtifacts@0 ( ve) yükseltmenizi öneririz DownloadPipelineArtifact@2 .

Azure Artifacts, takımların bağımlılıklarını yönetmek için akışları ve yukarı akış kaynaklarını kullanmasını sağlayan bir hizmettir. cı/CD iş akışınızın bir parçası olarak farklı türlerde yapıtları yayımlamak ve kullanmak için Azure Pipelines kullanabilirsiniz.

Yapıtları Yayımla Nasıl yaparım??

Artifacts, işlem hattının herhangi bir aşamasında yayımlanabilir. paketlerinizi yayımlamak için yaml 'yi veya klasik Azure DevOps düzenleyicisini kullanabilirsiniz.

Metin dosyası yayımlama

- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt

- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop
  • Pathtopublish: yapıtlarınızın yolu. Bu mutlak veya göreli bir yol olabilir. Joker karakterler desteklenmez.
  • artifactname: yapıtın adı.

Not

Yapıtlarınızı yayımlarken ayrılmış Klasör adlarından birini kullandığınızdan emin olun. Daha fazla ayrıntı için bkz. Uygulama klasörleri .

YAML, TFS 'de desteklenmez.

İki yapıt kümesi yayımlayın

- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt

- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop1
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop2
  • Pathtopublish: yapıtlarınızın yolu. Bu mutlak veya göreli bir yol olabilir. Joker karakterler desteklenmez.
  • artifactname: yapıtın adı.

YAML, TFS 'de desteklenmez.

Örnek: C++ yapılarını tek bir konumda birleştirin ve yapıt olarak yayımlayın

- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt

- task: CopyFiles@2
  inputs:
    sourceFolder: '$(Build.SourcesDirectory)'
    contents: '**/$(BuildConfiguration)/**/?(*.exe|*.dll|*.pdb)'
    targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop
  • SourceFolder: kopyalamak istediğiniz dosyaları içeren klasör. Bu değeri boş bırakırsanız, kopyalama işlemi deponuzdaki kök klasöründen ( $(Build.SourcesDirectory) ) yapılır.
  • içerik: hedef klasöre kopyalanacak dosya (ler) in konumları.
  • targetFolder: hedef klasör.
  • pathtopublish: yayımlanacak klasör veya dosya yolu. Mutlak veya göreli bir yol olabilir ve joker karakterler desteklenmez.
  • artifactname: oluşturmak istediğiniz yapıtın adı.

Not

Bu içerik Web isteklerine yanıt olarak sunulmadığından, IIS tarafından bir yapıt adı olarak ayrılan bin, App_Data ve diğer klasör adlarını kullanamazsınız. daha fazla ayrıntı için lütfen ASP.NET Web Project klasör yapısına bakın.

YAML, TFS 'de desteklenmez.

Yapıtları tüketmi Nasıl yaparım??

Yapılarınızı farklı yollarla kullanabilirsiniz: bunu yayın işlem hattınızda kullanabilir, işlem hattı işleriniz arasında geçirebilir, doğrudan işlem hattınızdan indirebilir, hatta akışlarınızdan ve yukarı akış kaynaklarından indirebilirsiniz.

Yayın işlem hatlarında yapıtları kullanma

Bir yayın işlem hattındaki derleme işlem hattı (klasik düzenleyicide oluşturulmuş) veya YAML ardışık düzeninde (bir YAML dosyası aracılığıyla oluşturulur) üretilen yapıtları indirebilir ve bunları istediğiniz hedefe dağıtın.

İşlem hattınızdaki bir sonraki işte bir yapıyı kullanın

Bu iş, farklı bir aşamada (YAML işlem hatları) olsa bile, işlem hattının sonraki bir işinde bir iş tarafından üretilen yapıtı kullanabilirsiniz. Bu, yapıtı test etmek için yararlı olabilir.

Hata ayıklama için İndir

Hata ayıklama sırasında kullanmak üzere bir yapıtı doğrudan bir ardışık düzen aracılığıyla indirebilirsiniz.

- powershell: gci env:* | sort-object name | Format-Table -AutoSize | Out-File $env:BUILD_ARTIFACTSTAGINGDIRECTORY/environment-variables.txt

- task: DownloadBuildArtifacts@0
  inputs:
    buildType: 'current'
    downloadType: 'single'
    artifactName: 'drop'
    downloadPath: '$(System.ArtifactsDirectory)'
  • BuildType: hangi derleme yapıtlarının indirileceğini belirtin: (varsayılan değer) veya belirli bir yapı.
  • Downloadtype: tek bir yapıt veya belirli bir yapının tüm yapıtlarının indirilip indirilmeyeceğini seçin.
  • artifactname: indirilecek yapıt adı.
  • downloadpath: yapıtların indirileceği aracı makinede yol.

YAML, TFS 'de desteklenmez.

Not

Bir deployment görevi kullanıyorsanız, değişken kullanarak yapı yapılarınıza başvurabilirsiniz $(Agent.BuildDirectory) . Önceden tanımlanmış değişkenlerin nasıl kullanılacağı hakkında daha fazla bilgi için bkz. Aracı değişkenleri .

İpuçları

  • yapıt yayımlama konumu bağımsız değişkeni: Azure Pipelines/tfs (TFS 2018 RTM ve daha eski: yapıt türü: sunucu) çoğu durumda en iyi ve en basit seçenektir. bu seçenek, yapıtların Azure Pipelines veya TFS 'de depolanmasına neden olur. ancak, özel bir Windows aracısı kullanıyorsanız, bir UNC dosya paylaşımında bırakmaseçeneğiniz vardır.

  • Dosya yolu bağımsız değişkenlerinde tüm aracılarda çalışacak şekilde eğik çizgi kullanın. Ters eğik çizgiler macOS ve Linux aracıları için çalışmaz.

  • yapı yapıtları, yürütme biti dahil olmak üzere tüm UNIX izinlerinin kaybolmasına neden olan bir Windows dosya sistemi üzerinde depolanır. yapılarınızı Azure Pipelines veya TFS 'den indirdikten sonra doğru UNIX izinleri geri yüklemeniz gerekebilir.

  • Azure Pipelines ve bazı TFS sürümlerinde, iki farklı değişken hazırlama dizinine işaret edin: ve Build.StagingDirectory . Bunlar arasında değiştirilebilir.

  • Tarafından başvurulan Dizin Build.ArtifactStagingDirectory her derlemeden sonra temizlenir.

  • bir dosya paylaşımında Artifacts yayımlayan bir derlemeyi silmek, bu UNC yolundaki tüm Artifacts silinmesine neden olur.

  • derleme yapıtlarını REST API.

Yapıtları yayımlamak için şu görevleri kullanın:

Yapıtlarınızı keşfetme, indirme ve dağıtma

Derleme bittiğinde, çalıştırmayı izlediyebilirsiniz, Özet sekmesini seçin ve Yayımlanmış yapıtları derleme bölümünde yapıtlarınızı görüntüleyin.

Yayımlanan derleme yapıt

Derleme tamamlandığında, çalıştırmayı izlediyebilirsiniz, tamamlanan derlemenin adını seçin ve ardından yapıt Artifacts sekmesini seçin.

Yayımlanan derleme yapıt TFS

Buradan yapıtları keşfedebilir veya indirebilirsiniz.

Ayrıca yayımla Azure Pipelines yapıtları kullanarak uygulamanızı dağıtmak için Azure Pipelines'yi de kullanabilirsiniz. Daha Artifacts sürümlerde Azure Pipelines bakın.

TFS'den UNC dosya paylaşımına yayımlama

Özel bir Windows aracısı kullanıyorsanız, dosyalarınızı bir UNC dosya paylaşımında yayımlamak için yapıt yayımlama konumu seçeneğini (TFS 2018 RTMve daha eski : yapıt türü) ayarlayın.

Not

Derleme aracı Windows kullanın. Bu seçenek macOS ve Linux aracıları için çalışmıyor.

Yapıt bir dosya paylaşımına kopyalamak için dosya paylaşımını seçin. Bunu yapmak için yaygın nedenler:

  • Bırakma boyutunuz büyüktür ve kopyalanacak çok fazla zaman ve bant genişliği tüketir.

  • Yapıtta bazı özel betikler veya başka araçlar çalıştırmanızı gerekir.

Dosya paylaşımı kullanıyorsanız klasörün UNC dosya yolunu belirtin. klasörünün her derleme için nasıl oluşturulacaklarını değişkenlerini kullanarak kontrol edin. Örneğin: \\my\share\$(Build.DefinitionName)\$(Build.BuildNumber).

TFS 2015 RTM'den yapıt yayımlama

TFS 2015 RTM kullanıyorsanız, önceki örneklerde yer alan adımlar kullanılamaz. Bunun yerine, yapıtlarınızı tek bir görevi kullanarak kopyalayıp yayımlarsiniz: Derleme: Derlemeyi Yayımlama Artifacts.