Kargo paketlerini yayımlama ve geri yükleme

Azure DevOps Hizmetleri | Azure DevOps Server | Azure DevOps Server 2022

Azure Artifacts kullanarak Kargo paketlerini kendi akışlarınızdan ve crates.io gibi genel kayıt defterlerinden yayımlayabilir ve geri yükleyebilirsiniz. İç kasaları barındırmak, yukarı akış kayıt defterlerine bağlanmak ve tek bir akıştan paket erişimini yönetmek için Azure Artifacts kullanın. Bu hızlı başlangıç, bir akış oluşturma, Kargo projenizi yapılandırma ve Azure Artifacts kullanarak Kargo paketlerini yayımlama ve kullanma konusunda size yol gösterir.

Önkoşullar

ürün Requirements
Azure DevOps - Azure DevOps kuruluşu.
- Bir Azure DevOps proje.
- rustupindirin ve yükleyin. Cargo 1.74.0 veya daha yeni bir sürümüne ihtiyacınız var.

Akış oluşturma

Zaten bir Azure Artifacts akışınız varsa sonraki bölüme gidin. Aksi takdirde, akış oluşturmak için bu adımları izleyin. Azure Artifacts, crates.io gibi genel kayıtlerden crate tüketmek için tek bir akışın, kurum içi crate’leri yayımlamak için ise ayrı bir akışın kullanılmasını önerir.

  1. Azure DevOps oturum açın ve projenize gidin.

  2. Yapıtlar'ı ve ardından Akış Oluştur seçeneğini seçin.

  3. Akışınız için bir Ad girin, Görünürlüğünü seçin ve ardından bir Kapsam seçin. Genel kayıt defterlerindeki paketleri dahil etmek için Yukarı akış kaynakları onay kutusunu seçtiğinizden emin olun.

  4. İşiniz bittiğinde Oluştur'u seçin.

Akışa bağlanma

Paketleri akışınızdan yayımlayabilmeniz veya geri yükleyebilmeniz için önce projenizi kimlik doğrulaması ve akışa bağlanacak şekilde yapılandırmanız gerekir.

  1. Azure DevOps oturum açın ve projenize gidin.

  2. Yapıtlar'ı seçin ve ardından açılan menüden akışınızı seçin.

  3. Akışa bağlan'ı seçin ve ardından sol gezinti bölmesinden Kargo'ya tıklayın.

  4. Dosyanızı yapılandırmak için config.toml bölümündeki adımları izleyin.

  5. Aynı sayfada, kimlik bilgisi sağlayıcısını ayarlamak ve akışınıza bağlanmak için Kimlik bilgisi sağlayıcısı yapılandırma ve Kayıt defterinde oturum açma bölümlerindeki yönergeleri izleyin. Ayrıntılı adımlar için bkz . Kargo - proje kurulumu.

Önemli

Azure Artifacts'da kargo desteği, özellik için destek içeren Rust 1.74 veya sonraki bir registry-auth sürümü gerektirir. Rust sürümünüzü güncellemek için rustup update komutunu çalıştırın

Önemli

Kargo şu anda önizleme aşamasındadır ve kararsız özelliğinregistry-auth etkin olduğu gecelik araç zincirini gerektirebilir. registry-auth'ı etkinleştirmek için .cargo/config.toml'a aşağıdaki ayarı ekleyin.

[unstable]
registry-auth = true

Gecelik araç zincirini kullanmak için aşağıdaki komutu çalıştırın:

rustup default nightly

Paketleri yayımlama

Kargo paketini yayımlamadan önce, Azure Artifacts akışınızla kimlik doğrulaması yapabilmeniz için Akışa bağlanma adımlarını tamamladığınızdan emin olun.

Cargo.toml dosyanızı içeren dizinden aşağıdaki komutu çalıştırarak paketinizi yayımlayın:

cargo publish

Hatayla karşılaşırsanız GLib-GObject-CRITICAL - libsecret-CRITICAL şu adımları izlediğinize emin olun:

  1. Libsecret'in yüklü olduğunu doğrulayın:

    sudo apt update && sudo apt install libsecret-1-0
    
  2. gnome-keyring'in çalıştığından emin olun:

    gnome-keyring-daemon --start --components=secrets
    
  3. Rust'ı en son kararlı sürüme güncelleştirin ve varsayılan araç zinciri olarak kararlı olarak ayarlayın:

    rustup update  
    rustup default stable  
    
  4. Sorun devam ederse, daha fazla ayrıntı toplamak için cargo publish öğesini ayrıntılı günlük kaydıyla yeniden çalıştırın:

    RUST_LOG=debug cargo publish --registry <REGISTRY_NAME>
    

Paketleri geri yükleme

Bağımlılıkları geri yüklemeden önce, Azure Artifacts akışınızla kimlik doğrulaması yapabilmeniz için Akışa bağlanma adımlarını tamamladığınızdan emin olun.

  1. Bağımlılıklarınızın Cargo.toml dosyanızın [dependencies] bölümünde listelendiğinden emin olun.

  2. Kasaları doğrudan özel Azure Artifacts akışınızdan kullanıyorsanız kayıt defterini açıkça aşağıdaki gibi belirtin:

    [dependencies]
    CRATE_NAME = { version = "VERSION_NUMBER", registry = "FEED_NAME" }
    
  3. replace-with yapılandırmasını kullanarak üst akışınız üzerinden crates.io crate’lerine başvuruyorsanız, bunları şu şekilde belirtin:

    [dependencies]
    CRATE_NAME = "VERSION_NUMBER"
    
  4. Projenizi oluşturmak ve akıştan bağımlılıklarınızı geri yüklemek için proje dizininizde aşağıdaki komutu çalıştırın:

    cargo build
    

İndirilen crate'ler yerel olarak ~/.cargo/registry/cache/<registry-hash>/ içinde önbelleğe alınır; burada registry-hash, akış URL'nize dayalı benzersiz bir tanımlayıcıdır.