Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сервисы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
С помощью Azure Artifacts можно публиковать и восстанавливать пакеты Cargo из собственных веб-каналов и общедоступных реестров, таких как crates.io. Используйте Azure Artifacts для размещения внутренних пакетов, подключения к внешним реестрам и управления доступом к пакетам в одном канале. В этом кратком руководстве описано создание веб-канала, настройка проекта Cargo и публикация и использование пакетов Cargo с помощью Azure Artifacts.
Предварительные условия
| Продукт | Requirements |
|---|---|
| Azure DevOps | — Организация Azure DevOps. — Azure DevOps project. — Скачайте и установите rustup. Вам нужен Cargo 1.74.0 или более поздней версии. |
Создать ленту
Если у вас уже есть веб-канал Azure Artifacts, перейдите к следующему разделу. В противном случае выполните следующие действия, чтобы создать канал. Azure Artifacts рекомендует использовать один канал для получения пакетов crate из общедоступных реестров, таких как crates.io, и отдельный канал для публикации внутренних пакетов crate.
Войдите в Azure DevOps, а затем перейдите в проект.
Выберите артефакты, затем нажмите Создать канал.
Введите имя веб-канала, выберите его видимость и выберите область. Установите флажок "Вышестоящий источник" , чтобы включить пакеты из общедоступных реестров.
После завершения работы выберите Создать.
Подключение к веб-каналу
Прежде чем публиковать или восстанавливать пакеты из веб-канала, необходимо сначала настроить проект для проверки подлинности и подключения к веб-каналу.
Войдите в Azure DevOps, а затем перейдите в проект.
Выберите Артефакты, а затем выберите свой канал в раскрывающемся меню.
Выберите Подключиться к каналу, а затем выберите Cargo в панели навигации слева.
Выполните действия, описанные в разделе настройки Project, чтобы настроить
config.tomlфайл.На той же странице следуйте инструкциям в разделах Настройка поставщика учетных данных и Вход в реестр, чтобы настроить поставщика учетных данных и подключиться к своему каналу. Подробные инструкции см. в разделе "Cargo - настройка проекта".
Внимание
Для поддержки грузов в Azure Artifacts требуется Rust 1.74 или более поздней версии, которая включает поддержку registry-auth функции.
Чтобы обновить версию Rust, выполните команду rustup update
Внимание
В настоящее время Cargo находится на стадии предварительной версии, и для него может потребоваться nightly-цепочка инструментов с включённой функцией registry-authunstable feature. Чтобы включить registry-auth, добавьте следующий параметр в .cargo/config.toml.
[unstable]
registry-auth = true
Чтобы использовать ночной тулчейн, выполните следующую команду:
rustup default nightly
Публикация пакетов
Перед публикацией пакета Cargo убедитесь, что вы выполнили действия, описанные в разделе "Подключение к веб-каналу" для проверки подлинности с помощью веб-канала Azure Artifacts.
В каталоге, содержающем файл Cargo.toml , выполните следующую команду, чтобы опубликовать пакет:
cargo publish
Если возникла GLib-GObject-CRITICAL - libsecret-CRITICAL ошибка, выполните следующие действия.
Убедитесь, что libsecret установлен:
sudo apt update && sudo apt install libsecret-1-0Убедитесь, что gnome-keyring запущен:
gnome-keyring-daemon --start --components=secretsОбновите Rust до последней стабильной версии и установите стабильную цепочку инструментов по умолчанию:
rustup update rustup default stableЕсли проблема сохраняется, запустите
cargo publishповторно с подробным журналированием, чтобы собрать дополнительные сведения:RUST_LOG=debug cargo publish --registry <REGISTRY_NAME>
Восстановление пакетов
Перед восстановлением зависимостей убедитесь, что вы выполнили действия, описанные в разделе "Подключение к веб-каналу" для проверки подлинности с помощью веб-канала Azure Artifacts.
Убедитесь, что зависимости перечислены в
[dependencies]разделеCargo.tomlфайла.Если вы используете crates напрямую из своего частного канала Azure Artifacts, явно укажите реестр следующим образом:
[dependencies] CRATE_NAME = { version = "VERSION_NUMBER", registry = "FEED_NAME" }Если вы обращаетесь к crate из crates.io через вышестоящий канал с помощью конфигурации
replace-with, укажите их следующим образом:[dependencies] CRATE_NAME = "VERSION_NUMBER"Выполните следующую команду в каталоге вашего проекта, чтобы собрать проект и восстановить ваши зависимости из источника:
cargo build
Скачанные crates кэшируются локально в ~/.cargo/registry/cache/<registry-hash>/, где registry-hash — это уникальный идентификатор, основанный на URL-адресе вашего канала.