Een Python-app bouwen en publiceren
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
In deze quickstart maakt u een pijplijn waarmee een Python-app wordt gebouwd en getest. U ziet hoe u Azure Pipelines gebruikt om Python-apps en -scripts te bouwen, testen en implementeren als onderdeel van uw CI/CD-systeem (continue integratie en continue levering).
Vereisten
- Een GitHub-account waar u een opslagplaats kunt maken. Maak gratis een GitHub-account.
- een Azure DevOps-organisatie. Maak gratis een account.
- Een Azure DevOps-project. Maak er een met behulp van de wizard Azure DevOps-project maken.
- De mogelijkheid om pijplijnen uit te voeren op door Microsoft gehoste agents. U moet de gratis toekenning van parallelle taken aanvragen of een parallelle taak aanschaffen.
Python is vooraf geïnstalleerd op door Microsoft gehoste agents voor Linux, macOS en Windows. U hoeft niets meer in te stellen om Python-projecten te bouwen. Zie Een door Microsoft gehoste agent gebruiken om te zien welke Python-versies vooraf zijn geïnstalleerd.
- Een GitHub-account waar u een opslagplaats kunt maken. Maak gratis een GitHub-account.
- een Azure DevOps-organisatie. Maak gratis een account.
- Een Azure DevOps-project. Maak er een met behulp van de wizard Azure DevOps-project maken.
- Een zelf-hostende agent. Zie Zelf-hostende agents om er een te maken.
- Python is geïnstalleerd op uw zelf-hostende agent. Zie UsePythonVersion om Python op uw agent te installeren.
De voorbeeldcode forken
Fork de Python-voorbeeldopslagplaats naar uw GitHub-account.
- Ga naar de opslagplaats python-sample-vscode-flask-tutorial .
- Selecteer Fork in de rechterbovenhoek van de pagina.
- Selecteer uw GitHub-account. Standaard krijgt de fork dezelfde naam als de bovenliggende opslagplaats, maar u kunt deze een andere naam opgeven.
Belangrijk
Tijdens de volgende procedures wordt u mogelijk gevraagd om een GitHub-serviceverbinding te maken of omgeleid naar GitHub om u aan te melden, Azure Pipelines te installeren of Azure Pipelines te autoriseren. Volg de instructies op het scherm om het proces te voltooien. Zie Toegang tot GitHub-opslagplaatsen voor meer informatie.
Uw pijplijn maken
- Selecteer in uw Azure DevOps-project pijplijnen>maken en selecteer vervolgens GitHub als de locatie van uw broncode.
- Selecteer in het scherm Een opslagplaats selecteren uw geforkte voorbeeldopslagplaats.
- Selecteer Starter-pijplijn in het scherm Uw pijplijn configureren.
Uw pijplijn aanpassen
Vervang in het scherm YamL van de pijplijn controleren de inhoud van het gegenereerde azure-pipelines.yml-bestand door de volgende code. De code:
- Installeert vereiste Python-versies en -afhankelijkheden.
- Pakketten bouwen artefacten naar een ZIP-archief.
- Hiermee publiceert u het archief naar uw pijplijn.
- Voert tests uit.
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'
Pas azure-pipelines.yml aan zodat deze overeenkomt met uw projectconfiguratie.
- Als u een andere agentgroep hebt, wijzigt u de poolparameter
name
. - Wijzig indien nodig de Python-versie in een versie die is geïnstalleerd op uw zelf-hostende agent.
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'
Uw pijplijn uitvoeren
Selecteer Opslaan en uitvoeren en selecteer Opslaan en opnieuw uitvoeren .
Op het tabblad Samenvatting ziet u de status van de pijplijnuitvoering.
Als u uw buildartefact wilt weergeven, selecteert u de gepubliceerde koppeling op het tabblad Samenvatting .
Op de pagina Artefacten worden de gepubliceerde buildartefacten weergegeven.
Op de pagina Artefacten worden de gepubliceerde buildartefacten weergegeven.
Selecteer het tabblad Tests om de testresultaten weer te geven.
Selecteer Uitvoeren.
Het buildnummer wordt boven aan de pagina weergegeven. Selecteer het buildnummer om de details van de build te bekijken.
Op het tabblad Samenvatting ziet u de status van de pijplijnuitvoering.
Als u uw build-artefact wilt downloaden, selecteert u de drop link in de sectie Build-artefacten die zijn gepubliceerd .
Selecteer het tabblad Tests om de testresultaten weer te geven.
Opschonen
Wanneer u deze quickstart hebt voltooid, kunt u het Azure DevOps-project verwijderen dat u hebt gemaakt.
- Selecteer in uw project het tandwielpictogram Van Project-instellingen in de linkerbenedenhoek van de pagina.
- Selecteer Verwijderen onder aan de overzichtspagina van Project.
- Voer de projectnaam in en selecteer Verwijderen.
Gefeliciteerd, u hebt een pijplijn gemaakt en uitgevoerd waarmee een Python-app is gebouwd en getest. U kunt nu Azure Pipelines gebruiken om Python-apps en -scripts te bouwen, testen en implementeren als onderdeel van uw CI/CD-systeem (continue integratie en continue levering).