Compartir a través de


Compilación y publicación de una aplicación de Python

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

En esta guía rápida se crea una canalización que compila y prueba una aplicación Python. Verá cómo usar Azure Pipelines para compilar, probar e implementar aplicaciones y scripts de Python como parte del sistema de integración continua y entrega continua (CI/CD).

Requisitos previos

Python está preinstalado en agentes hospedados por Microsoft para Linux, macOS y Windows. No tiene que configurar nada más para compilar proyectos de Python. Para ver qué versiones de Python están preinstaladas, consulte Software.

Producto Requisitos
Azure DevOps - Un proyecto de Azure DevOps .
- Tener la capacidad de ejecutar canalizaciones en agentes hospedados por Microsoft. Puede comprar un trabajo paralelo o solicitar un nivel gratuito.
- Conocimientos básicos de YAML y Azure Pipelines. Para obtener más información, consulte Creación de su primera canalización.
- Permisos:
     - Para crear una canalización: debe estar en el grupo Colaboradores y este debe tener el permiso Crear canalización de compilación establecido en Permitir. Los miembros del grupo Administradores de proyectos pueden administrar canalizaciones.
    - Para crear conexiones de servicio: debe tener el rol Administrador o Creador para las conexiones de servicio.
GitHub - Una cuenta de GitHub .
- Una conexión de servicio de GitHub para autorizar Azure Pipelines.
Producto Requisitos
Azure DevOps - Un proyecto de Azure DevOps .
- Un agente autohospedado con Python 3.12 u otra versión de Python instalada. Para crear uno, consulte Agentes autohospedados.
- Conocimientos básicos de YAML y Azure Pipelines. Para obtener más información, consulte Creación de su primera canalización.
- Permisos:
    - Para crear una canalización: debe estar en el grupo Colaboradores y este debe tener el permiso Crear canalización de compilación establecido en Permitir. Los miembros del grupo Administradores de proyectos pueden administrar canalizaciones.
    - Para crear conexiones de servicio: debe tener el rol Administrador o Creador para las conexiones de servicio.
GitHub - Una cuenta de GitHub .
- Una conexión de servicio de GitHub para autorizar Azure Pipelines.

Importante

Los procedimientos de GitHub pueden requerir que realice una o varias de las siguientes acciones en GitHub:

  • Inicia sesión.
  • Autorización de Azure Pipelines.
  • Autentíquese en organizaciones de GitHub.
  • Instale la aplicación Azure Pipelines.

Siga las instrucciones para completar los procesos necesarios. Para más información, consulte Acceso a repositorios de GitHub.

Bifurcación del código de muestra

Bifurque el repositorio de muestra de Python a su cuenta de GitHub.

  1. Vaya al repositorio python-sample-vscode-flask-tutorial.
  2. Seleccione Bifurcar en la esquina superior derecha.
  3. Asegúrese de que el nombre de la cuenta de GitHub esté seleccionado en Propietario y seleccione Crear bifurcación. La bifurcación se denomina igual que el repositorio primario de forma predeterminada, pero puede asignarle un nombre diferente.

Cree la canalización

  1. En el proyecto de Azure DevOps, seleccione Canalizaciones en el menú de navegación izquierdo y, a continuación, seleccione Nueva canalización o Crear canalización si esta canalización es la primera en el proyecto.
  2. En la pantalla Where is your code (Dónde está el código ), seleccione GitHub como ubicación del código fuente.
  3. En la pantalla Seleccionar un repositorio , seleccione el repositorio de ejemplo de Python bifurcada.
  4. En la pantalla Configurar su canalización, seleccione Canalización inicial.

Personalización de la canalización

En la pantalla Revisar canalización de YAML, reemplace el contenido del archivo azure-pipelines.yml generado por el código siguiente. El código realiza las siguientes acciones en tres versiones diferentes de Python:

  1. Instala las dependencias y la versión de Python necesarias.
  2. Los paquetes crean artefactos en un archivo ZIP.
  3. Publica el archivo en la canalización.
  4. Ejecuta pruebas.
trigger:
- main

pool:
  vmImage: ubuntu-latest

strategy:
  matrix:
    Python310:
      python.version: '3.10'
    Python311:
      python.version: '3.11'
    Python312:
      python.version: '3.12'

steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '$(python.version)'
    displayName: 'Use Python $(python.version)'

  - script: |
      python -m pip install --upgrade pip
      pip install -r requirements.txt
    displayName: 'Install dependencies'

  - task: ArchiveFiles@2
    displayName: 'Archive files'
    inputs:
      rootFolderOrFile: $(System.DefaultWorkingDirectory)
      includeRootFolder: false
      archiveType: zip
      archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId)-$(python.version).zip
      replaceExistingArchive: true

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

  - script: |
      pip install pytest pytest-azurepipelines
      pytest
    displayName: 'pytest'

En la pantalla Revisar canalización de YAML, reemplace el contenido del archivo azure-pipelines.yml generado por el código siguiente. El código realiza las siguientes acciones:

  1. Instala las dependencias y la versión de Python necesarias.
  2. Los paquetes crean artefactos en un archivo ZIP.
  3. Publica el archivo en la canalización.
  4. Ejecuta pruebas.

Personalice azure-pipelines.yml para que coincida con la configuración del proyecto.

  • Si tiene un grupo de agentes diferente, reemplace el marcador de posición del grupo name por el nombre del grupo o default.
  • Si es necesario, cambie Python versionSpec a una versión instalada en el agente autohospedado.
  trigger:
  - main

  pool: 
    name: '<your-pool-name or default>'

  steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.12'
    displayName: 'Use Python 3.12'  

  - script: |
      python -m pip install --upgrade pip
      pip install -r requirements.txt
    displayName: 'Install dependencies'


  - task: ArchiveFiles@2
    displayName: 'Archive files'
    inputs:
      rootFolderOrFile: $(System.DefaultWorkingDirectory)
      includeRootFolder: false
      archiveType: zip
      archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
      replaceExistingArchive: true

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'

  - script: |
      pip install pytest pytest-azurepipelines
      pytest
    displayName: 'pytest'

Ejecución de la canalización

Seleccione Guardar y ejecutar y, a continuación, seleccione Guardar y ejecutar de nuevo. Puede seleccionar Trabajo en la pantalla Resumen para ver el trabajo en acción.

El trabajo se ejecuta tres veces, una vez para cada versión de Python especificada. Las tres versiones se pueden ejecutar en paralelo en distintos agentes.

Captura de pantalla del trabajo de Python completado con varias versiones.

Captura de pantalla de un único trabajo de Python completado.

Visualización de artefactos y resultados de pruebas

Para ver los artefactos de compilación, seleccione el vínculo [N] publicado en la pestaña Resumen .

Captura de pantalla del vínculo de artefactos de compilación publicados.

La página Artefactos muestra los artefactos de construcción publicados.

Captura de pantalla de los artefactos de compilación publicados.

Captura de pantalla de los artefactos de compilación publicados para un único trabajo.

Para ver los resultados de la prueba, seleccione la pestaña Pruebas.

Captura de pantalla de resultados de la prueba de la canalización.

Limpieza

Si ha terminado de usar la canalización que ha creado, puede eliminarla.

  1. Seleccione Canalizaciones en el menú de navegación izquierdo del proyecto.

  2. En la lista de canalizaciones, mantenga el puntero sobre la canalización que creó, seleccione el icono Más acciones a la derecha y, a continuación, seleccione Eliminar.

    O bien, seleccione la canalización y, en la página de canalización, seleccione el icono Más acciones en la esquina superior derecha y, a continuación, seleccione Eliminar.

  3. Escriba el nombre de la canalización y, a continuación, seleccione Eliminar de nuevo.

Ha creado y ejecutado correctamente una canalización que ha compilado y probado una aplicación de Python. Ahora puede usar Azure Pipelines para compilar, probar e implementar aplicaciones y scripts de Python como parte del proceso de CI/CD.

Paso siguiente