Publier des packages Cargo avec Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022
Azure Pipelines permet aux développeurs de publier des packages Cargo sur des flux Azure Artifacts et des registres publics tels que Crates.io. Cet article vous explique comment publier vos packages Cargo sur des flux Azure Artifacts avec des pipelines YAML et classiques.
Prérequis
Une organisation Azure DevOps et un projet. Créez une organisation ou un projet si ce n’est déjà fait.
Flux de données Azure Artifacts. Créer un flux si vous n’en avez pas déjà.
S’authentifier avec un flux
Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.
Sélectionnez Artefacts, puis sélectionnez votre flux.
Sélectionnez Se connecter au flux, puis sélectionnez Cargo dans le volet gauche.
Copiez l’extrait de code fourni à partir de la section configuration de Project
et ajoutez-le à votre fichier config.toml dans votre référentiel source. Votre fichier devrait ressembler à ceci :Flux à l'échelle du projet :
[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>"
Flux à l'échelle de l'organisation :
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
Créez un jeton d’accès personnel avec des portées de Mise en package>Lecture et écriture pour vous authentifier auprès de votre flux.
Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.
Sélectionnez pipelines, puis sélectionnez votre définition de pipeline.
Sélectionnez Modifier, puis ajoutez l’extrait de code suivant à votre pipeline 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"
Publier des crates vers un flux
Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.
Sélectionnez pipelines, puis sélectionnez votre définition de pipeline.
Sélectionnez Modifier, puis ajoutez l’extrait de code suivant à votre pipeline YAML.
- powershell: | cargo publish --registry <FEED_NAME> ## Replace the placeholder with your feed name env: SYSTEM_ACCESSTOKEN: $(system.accesstoken)
Exemple
L’exemple suivant montre comment installer Rustup sur l’agent, configurer la variable d’environnement PATH, générer le projet, s’authentifier auprès de CargoAuthenticate et publier sur un flux 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
Une fois l’exécution de votre pipeline terminée, votre crate devrait être disponible dans votre flux, comme indiqué ci-dessous :