Ejecución de canalizaciones con entornos de Anaconda

Azure Pipelines

Aprenda a configurar y usar Anaconda con Python en la canalización. Anaconda es una distribución de Python para ciencia de datos y aprendizaje automático.

Introducción

Siga estas instrucciones para configurar una canalización para una aplicación de Python de ejemplo con el entorno anaconda.

  1. El código del repositorio siguiente es una aplicación de Python sencilla. Para empezar, bifurca este repositorio en la cuenta GitHub cliente.

    https://github.com/MicrosoftDocs/pipelines-anaconda
    
  2. Inicie sesión en su organización de Azure DevOps y vaya a su proyecto.

  3. En el proyecto, vaya a la página Pipelines (Canalizaciones). A continuación, elija la acción para crear una canalización.

  4. Siga los pasos del asistente y seleccione primero GitHub como ubicación del código fuente.

  5. Puede que se le redirija a GitHub para iniciar sesión. Si es así, escriba sus credenciales de GitHub.

  6. Cuando aparezca la lista de repositorios, seleccione el repositorio de ejemplo anaconda.

  7. Azure Pipelines analizará el código del repositorio y detectará un archivo azure-pipelines.yml existente.

  8. Seleccione Run (Ejecutar).

  9. Se inicia una nueva ejecución. Espere a que finalice.

Sugerencia

Para realizar cambios en el archivo YAML como se describe en este tema, seleccione la canalización en la página Pipelines y, a continuación, edite el archivo.

Agregar conda a la ruta de acceso del sistema

En los agentes hospedados,conda se deja fuera de de forma predeterminada para evitar que su versión de Python entre en conflicto con otras versiones instaladas. El task.prependpath comando del agente lo pondrá a disposición de todos los pasos posteriores.

- bash: echo "##vso[task.prependpath]$CONDA/bin"
  displayName: Add conda to PATH

Creación de un entorno

Desde argumentos de la línea de comandos

El conda create comando creará un entorno con los argumentos que se pasan.

- bash: conda create --yes --quiet --name myEnvironment
  displayName: Create Anaconda environment

Desde YAML

Puede comprobar un archivo environment.yml en el repositorio que define la configuración de un entorno de Anaconda.

- script: conda env create --quiet --file environment.yml
  displayName: Create Anaconda environment

Nota

Si usa un agente auto hospedado y no quita el entorno al final, se producirá un error en la siguiente compilación, ya que el entorno ya existe. Para resolverlo, use el --force argumento : conda env create --quiet --force --file environment.yml .

Instalación de paquetes desde Anaconda

El siguiente código YAML instala el scipy paquete en el entorno de Conda denominado myEnvironment .

- bash: |
    source activate myEnvironment
    conda install --yes --quiet --name myEnvironment scipy
  displayName: Install Anaconda packages

Ejecución de pasos de canalización en un entorno de Anaconda

Nota

Cada paso de compilación se ejecuta en su propio proceso. Al activar un entorno de Anaconda, este editará y PATH realizará otros cambios en su proceso actual. Por lo tanto, un entorno de Anaconda debe activarse por separado para cada paso.

- bash: |
    source activate myEnvironment
    python -m pytest --junitxml=junit/unit-test.xml
  displayName: pytest

- task: PublishTestResults@2
  inputs:
    testResultsFiles: 'junit/*.xml'
  condition: succeededOrFailed()

Preguntas más frecuentes

¿Por qué aparece el error "Permiso denegado"?

En macOS hospedado, el usuario del agente no tiene la propiedad del directorio donde está instalado Miniconda. Para obtener una corrección, vea la pestaña "Hosted macOS" (MacOS hospedado) en Add conda to your system path (Agregar conda a la ruta de acceso del sistema).

¿Por qué mi compilación deja de responder en conda create un conda install paso o ?

Si olvida pasar --yes , Conda se detendrá y esperará la interacción del usuario.

¿Por qué mi script Windows deteniendo después de activar el entorno?

En Windows, activate es un script de Batch. Debe usar el comando call para reanudar la ejecución del script después de activarlo. Vea ejemplos de uso de callcall

¿Cómo puedo ejecutar mis pruebas con varias versiones de Python?

Consulte Compilación de aplicaciones de Python en Azure Pipelines.