Публикация пакетов Cargo с помощью Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022
Azure Pipelines позволяет разработчикам публиковать пакеты Cargo в каналы Azure Artifacts и общедоступные реестры, такие как Crates.io. В этой статье вы узнаете, как опубликовать пакеты Cargo в веб-канале Артефактов Azure с помощью yamL и классических конвейеров.
Необходимые компоненты
Организация Azure DevOps и проект. Создайте организацию или проект , если вы еще не сделали этого.
Поток артефактов Azure. Создайте ленту новостей, если у вас еще нет.
Аутентификация через ленту данных
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите артефакты и выберите веб-канал.
Выберите "Подключиться к каналу" и выберите "Cargo " в левой области.
Скопируйте предоставленный фрагмент из раздела установки проекта и добавьте его в файл config.toml в исходном репозитории. Файл должен выглядеть следующим образом:
Веб-канал с областью действия проекта:
[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>"
Веб-канал с областью действия организации:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
Создайте личный маркер доступа с областями чтения и записи для>проверки подлинности в веб-канале.
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите конвейеры, а затем выберите определение конвейера.
Выберите Изменить, а затем добавьте следующий фрагмент в конвейер 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"
Публикация контейнеров в веб-канале
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите конвейеры, а затем выберите определение конвейера.
Выберите Изменить, а затем добавьте следующий фрагмент в конвейер YAML.
- powershell: | cargo publish --registry <FEED_NAME> ## Replace the placeholder with your feed name env: SYSTEM_ACCESSTOKEN: $(system.accesstoken)
Пример
В следующем примере показано, как установить Rustup на агенте, настроить переменную среды PATH, создать проект, пройти проверку подлинности с помощью CargoAuthenticate и опубликовать в веб-канале Артефактов Azure:
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
После завершения выполнения конвейера ваш пакет должен быть доступен в вашем хранилище, как показано ниже.