Compilación y publicación de una aplicación de Python
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
En este inicio rápido, creará una canalización que compila y prueba una aplicación de 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
- Una cuenta de GitHub en la que pueda crear un repositorio. Cree una cuenta de GitHub gratuitamente.
- Una organización de Azure DevOps. cree una de forma gratuita.
- Un proyecto de Azure DevOps. Cree uno mediante el Asistente para la creación de proyectos de Azure DevOps.
- La capacidad de ejecutar canalizaciones en agentes hospedados por Microsoft. Debe solicitar la concesión gratuita de trabajos paralelos o comprar un trabajo paralelo.
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.
- Una cuenta de GitHub en la que pueda crear un repositorio. Cree una cuenta de GitHub gratuitamente.
- Una organización de Azure DevOps. cree una de forma gratuita.
- Un proyecto de Azure DevOps. Cree uno mediante el Asistente para la creación de proyectos de Azure DevOps.
- Un agente autohospedado. Para crear uno, consulte Agentes autohospedados.
- Python instalado en el agente autohospedado. Para instalar Python en el agente, consulte UsePythonVersion.
Bifurcar el código de ejemplo
Bifurque el repositorio de muestra de Python a su cuenta de GitHub.
- Vaya al repositorio python-sample-vscode-flask-tutorial.
- Seleccione Bifurcar en la esquina superior derecha de la página.
- 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
- En el proyecto de Azure DevOps, seleccione Canalizaciones>crear canalización y, a continuación, seleccione GitHub como ubicación del código fuente.
- En la pantalla Seleccionar un repositorio , seleccione el repositorio de ejemplo bifurcada.
- En la pantalla Configurar su canalización, seleccione Canalización inicial.
Personalización de la canalización
En la pantalla Revisar la canalización 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 compilan 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.
La página Artefactos muestra los artefactos de compilación publicados.
La página Artefactos muestra los artefactos de compilación publicados.
Para ver los resultados de la prueba, seleccione la pestaña Pruebas.
Seleccione Ejecutar.
El número de compilación se muestra en la parte superior de la página. Seleccione el número de compilación para ver los detalles de la compilación.
La pestaña Resumen muestra el estado de la ejecución de la canalización.
Para descargar el artefacto de compilación, seleccione el vínculo de colocación en la sección Artefactos de compilación publicados.
Para ver los resultados de la prueba, seleccione la pestaña Pruebas.
Limpiar
Cuando termine este inicio rápido, puede eliminar el proyecto de Azure DevOps que creó.
- En el proyecto, seleccione el icono de engranaje Configuración del proyecto en la esquina inferior izquierda de la página.
- En la parte inferior de la página Información general del proyecto, seleccione Eliminar.
- Escriba el nombre del proyecto y seleccione Eliminar.
Enhorabuena, ha creado y ejecutado correctamente una canalización que creó y probó una aplicación de 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).