Derleme yapıtlarını yayımlama ve indirme

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Not

Daha hızlı performans için İşlem Hattı Yapıtlarını İndir ve İşlem Hattı Yapıtlarını Yayımla'yı kullanmanızı öneririz.

Azure Artifacts, ekiplerin bağımlılıklarını yönetmek için akışları ve yukarı akış kaynaklarını kullanmasını sağlar. AZURE Pipelines'ı kullanarak CI/CD iş akışınızın bir parçası olarak farklı yapıt türlerini yayımlayabilir ve indirebilirsiniz.

Yapıtları yayımlama

Yapıtlar işlem hattınızın herhangi bir aşamasında yayımlanabilir. Paketlerinizi yayımlamak için YAML veya klasik Azure DevOps düzenleyicisini kullanabilirsiniz.

- 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
  • pathToPublish: yapıtınızın yolu. Bu, mutlak veya göreli bir yol olabilir. Joker karakterler desteklenmez.
  • artifactName: Yapıtınızın adı.

Not

Yapıtınızı yayımlarken ayrılmış klasör adlarından birini kullanmadığınızdan emin olun. Diğer ayrıntılar için bkz . Uygulama Klasörleri .

Örnek: Birden çok görev kullanma

- 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: drop1
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop2
  • pathToPublish: yapıtınızın yolu. Bu, mutlak veya göreli bir yol olabilir. Joker karakterler desteklenmez.
  • artifactName: Yapıtınızın adı.

Örnek: İkili dosyaları kopyalama ve yayımlama

- 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 boş bırakırsanız kopyalama işlemi $(Build.SourcesDirectory) adresinden yapılır.
  • contents: Kopyanın parçası olarak eklenecek dosya yolları.
  • targetFolder: hedef klasör.
  • pathToPublish: yayımılacak klasör veya dosya yolu. Mutlak veya göreli bir yol olabilir. Joker karakterler desteklenmez.
  • artifactName: Oluşturmak istediğiniz yapıtın adı.

Not

Bin veya App_Data gibi artifactName için ayrılmış ad kullanmamaya dikkat edin. Daha fazla bilgi için bkz . web projesi klasör yapısı ASP.NET.

Not

Build.ArtifactStagingDirectory yol, her derlemeden sonra temizlenir. Yapıtınızı yayımlamak için bu yolu kullanıyorsanız yayımlama adımından önce yayımlamak istediğiniz içeriği bu dizine kopyaladığınızdan emin olun.

Yapıtları indirme

- 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: current (varsayılan değer) veya belirli bir derlemeden.
  • downloadType: Tek bir yapıtın mı yoksa belirli bir derlemenin tüm yapıtlarının mı indirileceğini seçin.
  • artifactName: İndirilecek yapıtın adı.
  • downloadPath: yapıtların indirileceği aracı makinesindeki yol.

Not

Dağıtım görevi kullanıyorsanız derleme yapıtlarınıza $(Agent.BuildDirectory) kullanarak başvurabilirsiniz. Daha fazla ayrıntı için bkz . Aracı değişkenleri .

İşlem hattı çalıştırmanız tamamlandığında, yapıtınızı keşfetmek veya indirmek için Özet'e gidin.

Yayımlanan derleme yapıtı

Belirli bir yapıtı indirme

steps:
- task: DownloadBuildArtifacts@1
  displayName: 'Download Build Artifacts'
  inputs:
    buildType: specific
    project: 'xxxxxxxxxx-xxxx-xxxx-xxxxxxxxxxx'
    pipeline: 20
    buildVersionToDownload: specific
    buildId: 128
    artifactName: drop
    extractTars: false

İpuçları

  • Kişisel Erişim Belirtecinizle kimlik doğrulamasına izin vermek için Azure DevOps Server kullanıyorsanız IIS Temel Kimlik Doğrulamasını devre dışı bırakın. Daha fazla ayrıntı için bkz . IIS Temel Kimlik Doğrulaması ve PAT'ler .

  • Dosya yolu bağımsız değişkenlerinde eğik çizgi kullanın. Ters eğik çizgiler macOS/Linux aracılarında çalışmaz.

  • Derleme yapıtları bir Windows dosya sisteminde depolanır ve bu da yürütme biti de dahil olmak üzere tüm UNIX izinlerinin kaybolmasına neden olur. Yapıtlarınızı Azure Pipelines'dan indirdikten sonra doğru UNIX izinlerini geri yüklemeniz gerekebilir.

  • Build.ArtifactStagingDirectory ve Build.StagingDirectory birbirinin yerine kullanılabilir.

  • Build.ArtifactStagingDirectory yol, her derlemeden sonra temizlenir.

  • Bir dosya paylaşımında yayımlanan paketlerle ilişkili bir derlemenin silinmesi, bu UNC yolundaki tüm Yapıtların silinmesine neden olur.

  • Paketlerinizi bir dosya paylaşımında yayımlıyorsanız derleme aracısına erişim sağladığınızdan emin olun.

  • Kuruluşunuz güvenlik duvarı kullanıyorsa Azure Artifacts Etki Alanı URL'lerine ve IP adreslerine izin verdiğinizden emin olun.