Publicera och återställa Cargo-paket

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

Med hjälp av Azure Artifacts kan du publicera och återställa Lastpaket från dina egna feeds och offentliga register, till exempel crates.io. Använd Azure Artifacts för att vara värd för interna lådor, ansluta till överordnade register och hantera paketåtkomst från en enda feed. Den här snabbstarten vägleder dig genom att skapa ett flöde, konfigurera ditt Cargo-projekt och publicera och använda Cargo-paket med hjälp av Azure Artifacts.

Prerequisites

Produkt Requirements
Azure DevOps – En organisation i Azure DevOps .
- Ett Azure DevOps projekt.
– Ladda ned och installera rustup. Du behöver Cargo 1.74.0 eller senare.

Skapa en feed

Om du redan har en Azure Artifacts feed går du till nästa avsnitt. I annat fall följer du de här stegen för att skapa en feed. Azure Artifacts rekommenderar att du använder ett flöde för att använda lådor från offentliga register, till exempel crates.io och ett separat flöde för publicering av interna lådor.

  1. Logga in på Azure DevOps och gå sedan till projektet.

  2. Välj Artefakter och välj sedan Skapa flöde.

  3. Ange ett namn för feeden, välj dess synlighet och välj sedan ett omfång. Kontrollera att du markerar kryssrutan Uppströmskällor för att inkludera paket från offentliga register.

  4. Välj Skapa när du är klar.

Ansluta till ett flöde

Innan du kan publicera eller återställa paket från feeden måste du först konfigurera projektet för att autentisera och ansluta till feeden.

  1. Logga in på Azure DevOps och gå sedan till projektet.

  2. Välj Artefakter och välj sedan din feed från den nedrullningsbara menyn.

  3. Välj Anslut för att mataoch välj sedan Cargo i det vänstra navigeringsfönstret.

  4. Följ stegen i avsnittet Project konfiguration för att konfigurera config.toml filen.

  5. På samma sida följer du anvisningarna i Avsnittet Konfigurera en provider för autentiseringsuppgifter och Logga in på registeravsnitten för att konfigurera providern för autentiseringsuppgifter och ansluta till flödet. Detaljerade steg finns i Last – projektkonfiguration.

Viktigt

Laststöd i Azure Artifacts kräver Rust 1.74 eller senare, vilket inkluderar stöd för registry-auth funktionen. Om du vill uppdatera Rust-versionen kör du rustup update

Viktigt

Cargo är för närvarande i förhandsversion och kan kräva nightly-verktygskedjan med den registry-authinstabila funktionen aktiverad. Om du vill aktivera registry-authlägger du till följande inställning i .cargo/config.toml.

[unstable]
registry-auth = true

Kör följande kommando för att använda den nattliga verktygskedjan:

rustup default nightly

Distribuera paket

Innan du publicerar ett Lastpaket kontrollerar du att du har slutfört stegen i Anslut till en feed så att du kan autentisera med din Azure Artifacts feed.

Från katalogen som innehåller filen Cargo.toml kör du följande kommando för att publicera paketet:

cargo publish

Om ett GLib-GObject-CRITICAL - libsecret-CRITICAL-fel uppstår, kontrollera att du följer dessa steg:

  1. Kontrollera att libsecret är installerat:

    sudo apt update && sudo apt install libsecret-1-0
    
  2. Kontrollera att gnome-keyring körs:

    gnome-keyring-daemon --start --components=secrets
    
  3. Uppdatera Rust till den senaste stabila versionen och ange stabil som standardverktygskedja:

    rustup update  
    rustup default stable  
    
  4. Om problemet kvarstår kör du cargo publish igen med utförlig loggning för att samla in mer detaljerad information:

    RUST_LOG=debug cargo publish --registry <REGISTRY_NAME>
    

Återställa paket

Innan du återställer beroenden kontrollerar du att du har slutfört stegen i Anslut till en feed så att du kan autentisera med din Azure Artifacts feed.

  1. Kontrollera att dina beroenden visas i avsnittet [dependencies] i Cargo.toml filen.

  2. Om du använder crates direkt från ditt privata Azure Artifacts-flöde, anger du registret explicit på följande sätt:

    [dependencies]
    CRATE_NAME = { version = "VERSION_NUMBER", registry = "FEED_NAME" }
    
  3. Om du refererar till lådor från crates.io via din överordnade feed med hjälp av konfigurationen replace-with anger du dem på följande sätt:

    [dependencies]
    CRATE_NAME = "VERSION_NUMBER"
    
  4. Kör följande kommando i projektkatalogen för att skapa projektet och återställa dina beroenden från feeden:

    cargo build
    

De nedladdade lådorna cachelagras lokalt i ~/.cargo/registry/cache/<registry-hash>/, där registry-hash är en unik identifierare som baseras på din feed-URL.