Udostępnij za pośrednictwem


Publikowanie pakietów ładunków za pomocą usługi Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022

Usługa Azure Pipelines umożliwia deweloperom publikowanie pakietów cargo w źródłach danych usługi Azure Artifacts i publicznych rejestrach, takich jak Crates.io. W tym artykule dowiesz się, jak publikować pakiety cargo w kanale informacyjnym usługi Azure Artifacts przy użyciu potoków YAML i klasycznych.

Wymagania wstępne

  • Organizacja i projekt usługi Azure DevOps. Utwórz organizację lub projekt , jeśli jeszcze tego nie zrobiłeś.

  • Źródło danych usługi Azure Artifacts. Utwórz kanał, jeśli jeszcze go nie masz.

Uwierzytelniaj za pomocą kanału

  1. Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Artefakty, a następnie wybierz źródło danych.

  3. Wybierz pozycję Połącz z kanałem informacyjnym, a następnie wybierz pozycję Ładunek w okienku po lewej stronie.

  4. Skopiuj podany fragment kodu z sekcji Project setup i dodaj go do pliku config.toml w repozytorium źródłowym. Plik powinien wyglądać następująco:

    • Źródło danych o zakresie projektu:

      [registries]
      <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/Cargo/index/" }
      
      [source.crates-io]
      replace-with = "<FEED_NAME>"
      
    • Kanał informacyjny o zakresie organizacji:

      [registries]
      <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" }
      
      [source.crates-io]
      replace-with = "<FEED_NAME>"
      
  5. Utwórz osobisty token dostępu z zakresami odczytu i zapisu pakietów>w celu uwierzytelnienia w kanale informacyjnym.

  1. Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz Pipelines, a następnie wybierz swoją definicję potoku.

  3. Wybierz pozycję Edytuj, a następnie dodaj następujący fragment kodu do potoku YAML.

    - task: CargoAuthenticate@0
      displayName: 'Cargo Authenticate'
      inputs:
        configFile: '.cargo/config.toml'    ## Path to the config.toml file that specifies the registries you want to work with. Select the file, not the folder e.g. "/.cargo/config.toml"
    

Publikowanie skrzynek do kanału informacyjnego

  1. Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Pipelines, a następnie wybierz definicję pipeline'u.

  3. Wybierz pozycję Edytuj, a następnie dodaj następujący fragment kodu do potoku YAML.

    - powershell: |
       cargo publish --registry <FEED_NAME>        ## Replace the placeholder with your feed name
      env:
        SYSTEM_ACCESSTOKEN: $(system.accesstoken)
    

Przykład

W poniższym przykładzie pokazano, jak zainstalować narzędzie Rustup na agencie, skonfigurować zmienną środowiskową PATH, skompilować projekt, uwierzytelnić się przy użyciu usługi CargoAuthenticate i opublikować w kanale informacyjnym usługi Azure Artifacts:

trigger:
- main

pool:
  vmImage: windows-latest

steps:
- powershell: |
   Invoke-WebRequest -Uri https://sh.rustup.rs -OutFile rustup-init.sh
   bash .\rustup-init.sh -y
   echo "##vso[task.prependpath]$env:USERPROFILE\.cargo\bin"
  displayName: Install

- task: CargoAuthenticate@0
  displayName: 'cargo Authenticate'
  inputs:
    configFile: '.cargo/config.toml'

- script: |
   cargo build --all
  displayName: Build

- powershell: |
   cargo publish --registry CargoInternalFeed
  displayName: Publish

Po zakończeniu przebiegu procesu skrzynia powinna być dostępna w twoim kanale, jak pokazano poniżej:

Zrzut ekranu przedstawiający skrzynię ładunkową hello-world-cargo opublikowaną w kanale informacyjnym.