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.
Ten artykuł przeprowadzi Cię przez proces wykonywania następujących instrukcji:
- Tworzenie źródła danych usługi Azure Artifacts
- Uwierzytelnianie za pomocą usługi Azure Artifacts
- Publikowanie pakietów towarowych
Wymagania wstępne
Organizacja: Azure DevOps. Utwórz organizację , jeśli jeszcze tego nie zrobiono.
Projekt usługi Azure DevOps. Utwórz projekt , jeśli jeszcze go nie masz.
Tworzenie kanału informacyjnego
Usługa Azure Artifacts zaleca posiadanie dedykowanego kanału informacyjnego do używania skrzynek z crates.io i oddzielnego kanału informacyjnego wyłącznie do publikowania wewnętrznych skrzynek. Jeśli masz już kanał informacyjny, możesz przejść do następnej sekcji.
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz pozycję Utwórz kanał informacyjny.
Podaj nazwę kanału informacyjnego, określ jego widoczność, a następnie wybierz zakres kanału informacyjnego.
Po zakończeniu wybierz pozycję Utwórz .
Uwierzytelnianie za pomocą usługi Azure Artifacts
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz źródło danych.
Wybierz pozycję Połącz z kanałem informacyjnym, a następnie wybierz pozycję Ładunek w okienku po lewej stronie.
Postępuj zgodnie z instrukcjami w sekcji Konfiguracja projektu, dodając podany fragment kodu do pliku config.toml w repozytorium źródłowym:
Ź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>"
Utwórz osobisty token dostępu z zakresami odczytu i zapisu pakietów>w celu uwierzytelnienia w kanale informacyjnym.
Użyj zadania CargoAuthenticate, aby uwierzytelnić się z potoku:
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Potoki, wybierz definicję potoku, a następnie wybierz pozycję Edytuj.
Wybierz znak,
+
aby dodać nowe zadanie. Wyszukaj zadanie Uwierzytelnianie ładunku, a następnie wybierz pozycję Dodaj, aby dodać go do potoku.Wybierz ikonę wielokropka, aby otworzyć nowe okno z zawartością repozytorium, a następnie wybierz plik config.toml .
Publikowanie skrzynek do kanału informacyjnego
W projekcie usługi Azure DevOps wybierz pozycję Potoki, wybierz definicję potoku, a następnie wybierz pozycję Edytuj.
+
Wybierz zadanie logowania agenta, aby dodać nowe zadanie. Znajdź zadanie programu PowerShell za pomocą funkcji wyszukiwania, a następnie wybierz pozycję Dodaj, aby dodać je do potoku.Nadaj swojemu zadaniu nazwę, np. Opublikuj, a następnie wybierz pozycję Wbudowany jako typ. Wklej polecenie publikowania w tekście, zastępując symbol zastępczy nazwą źródła danych:
cargo publish --registry <FEED_NAME>
Przykład
W tym przykładzie zainstalujemy rustup na agencie, skonfigurujemy zmienną środowiskową PATH, skompilujemy nasz projekt, uwierzytelnimy się przy użyciu usługi CargoAuthenticate, a na koniec opublikujemy naszą skrzynię w naszym 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 uruchamiania potoku skrzynia powinna być dostępna w kanale informacyjnym, jak pokazano poniżej: