Публикация пакетов Cargo с помощью Azure Pipelines
Azure Pipelines позволяет разработчикам публиковать свои пакеты Cargo в веб-каналах Azure Artifacts и общедоступных реестрах, таких как Crates.io. В этой статье вы узнаете, как опубликовать пакеты Cargo в веб-канале Артефактов Azure с помощью yamL и классических конвейеров.
В этой статье описано, как:
- Создание веб-канала артефактов Azure
- Проверка подлинности с помощью артефактов Azure
- Публикация пакетов Cargo
Необходимые компоненты
Организация Azure DevOps. Создайте организацию , если вы еще не сделали этого.
Проект Azure DevOps. Создайте проект , если у вас еще нет.
Создание веб-канала
Azure Artifacts рекомендует использовать выделенный веб-канал для использования контейнеров из crates.io и отдельного канала исключительно для публикации внутренних ящиков. Если у вас уже есть веб-канал, перейдите к следующему разделу.
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите артефакты и нажмите кнопку "Создать веб-канал".
Укажите имя веб-канала, укажите его видимость, а затем выберите область для веб-канала.
После завершения работы выберите Создать.
Проверка подлинности с помощью артефактов Azure
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите артефакты и выберите веб-канал.
Выберите Подключение для канала, а затем выберите Cargo в левой области.
Следуйте инструкциям в разделе "Настройка проекта", добавив предоставленный фрагмент кода в файл config.toml в исходном репозитории:
Веб-канал Project-область d:
[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>"
Создайте личный маркер доступа с помощью область упаковки>и записи, чтобы пройти проверку подлинности с помощью веб-канала.
Используйте задачу CargoAuthenticate для проверки подлинности из конвейера:
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите конвейеры, выберите определение конвейера и нажмите кнопку "Изменить".
+
Выберите знак, чтобы добавить новую задачу. Найдите задачу "Проверка подлинности грузов" и нажмите кнопку "Добавить", чтобы добавить ее в конвейер.Щелкните значок многоточия, чтобы открыть новое окно, отображающее содержимое репозитория, а затем выберите файл config.toml .
Публикация контейнеров в веб-канале
В проекте Azure DevOps выберите Pipelines, выберите определение конвейера и нажмите кнопку "Изменить".
+
Выберите вход в задание агента, чтобы добавить новую задачу. Найдите задачу PowerShell с помощью функции поиска и нажмите кнопку "Добавить", чтобы добавить ее в конвейер.Присвойте задаче имя, например опубликовать, а затем выберите Inline в качестве типа. Вставьте встроенную команду публикации, заменив заполнитель именем веб-канала:
cargo publish --registry <FEED_NAME>
Пример
В этом примере мы установим 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
После завершения выполнения конвейера в веб-канале должен быть доступен ваш ящик, как показано ниже:
Связанные статьи
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по