Compartir a través de


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

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

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

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.
Celeste Una suscripción de Azure.
Producto Requisitos
Azure DevOps - Un proyecto de Azure DevOps .
- Un agente autohospedado. 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.
Celeste Una suscripción de Azure.

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 Uso de un agente hospedado por Microsoft.

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 de la página.
  3. Seleccione la cuenta de GitHub. De forma predeterminada, la bifurcación se denomina igual que el repositorio primario, pero puede asignarle un nombre diferente.

Importante

Durante los procedimientos siguientes, es posible que se le pida que cree una conexión de servicio de GitHub o se le redirija a GitHub para iniciar sesión, instalar Azure Pipelines o autorizar Azure Pipelines. Siga las instrucciones que aparecen en pantalla para completar el proceso. Para más información, consulte Acceso a repositorios de GitHub.

Cree la canalización

  1. En el proyecto de Azure DevOps, seleccione Canalizaciones>Crear canalización y después elija GitHub como la ubicación del código fuente.
  2. En la pantalla Select a repository, seleccione su repositorio de muestras bifurcado.
  3. 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:

  • Instala las versiones y dependencias necesarias de Python.
  • Los paquetes crean artefactos en un archivo ZIP.
  • Publica el archivo en la canalización.
  • 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'

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

  • Si tiene un grupo de agentes diferente, cambie el parámetro name del grupo.
  • Si es necesario, cambie la versión de Python 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.

La pestaña Resumen muestra el estado de la ejecución de la canalización.

Para ver el artefacto de compilación, seleccione el vínculo 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 del trabajo de Python completado.

La página Artefactos muestra los artefactos de construcción publicados. Captura de pantalla del vínculo de artefactos de compilación publicados.

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

Cuando termine este inicio rápido, puede eliminar el proyecto de Azure DevOps que creó.

  1. En su proyecto seleccione el icono engranaje Configuración del proyecto, situado en la esquina inferior izquierda de la página.
  2. En la parte inferior de la página Información general del proyecto, seleccione Eliminar.
  3. Escriba el nombre del proyecto y seleccione Eliminar.

Enhorabuena, ha creado y ejecutado correctamente una canalización que ha compilado y probado una aplicación Python. Ahora puede 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).

Pasos siguientes