Publicación de paquetes Cargo con Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022
Azure Pipelines permite a los desarrolladores publicar paquetes de Cargo en fuentes de Azure Artifacts y registros públicos, como Crates.io. En este artículo aprenderá a publicar los paquetes Cargo en un feed de Azure Artifacts mediante canalizaciones YAML y Classic.
Requisitos previos
Una organización de Azure DevOps y un proyecto. Cree una organización de o un proyecto de si aún no lo ha hecho.
Una fuente de Azure Artifacts. Crear un feed si aún no tiene uno.
Autentificarse con un feed
Inicie sesión en su organización de Azure DevOps y vaya a su proyecto.
Seleccione Artefactos y, a continuación, seleccione la fuente.
Seleccione Conectar al feed y, a continuación, seleccione Cargo en el panel izquierdo.
Copie el fragmento de código proporcionado de la sección de configuración del proyecto y agréguelo al archivo config.toml en su repositorio de origen. El archivo debe tener este aspecto:
Fuente con ámbito de proyecto:
[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>"
Feed con ámbito de organización:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
Cree un token de acceso personal con los ámbitos Empaquetado>Lectura y escritura para autenticarse con el feed.
Inicie sesión en su organización de Azure DevOps y vaya a su proyecto.
Seleccione Pipelines y elija la definición correspondiente.
Seleccione Editary agregue el siguiente fragmento de código a la canalización de 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"
Publicar cajas en un feed
Inicie sesión en su organización de Azure DevOps y vaya a su proyecto.
Seleccione Pipelines y elija la definición correspondiente.
Seleccione Editary agregue el siguiente fragmento de código a la canalización de YAML.
- powershell: | cargo publish --registry <FEED_NAME> ## Replace the placeholder with your feed name env: SYSTEM_ACCESSTOKEN: $(system.accesstoken)
Ejemplo
En el ejemplo siguiente se muestra cómo instalar Rustup en el agente, configurar la variable de entorno PATH, compilar el proyecto, autenticarse con CargoAuthenticate y publicar en una fuente de 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
Una vez finalizada la ejecución de la canalización, la caja debería estar disponible en el feed, como se muestra a continuación: