Delen via


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

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.

De voorbeeldcode forken

Fork de Python-voorbeeldopslagplaats naar uw GitHub-account.

  1. Ga naar de opslagplaats python-sample-vscode-flask-tutorial .
  2. Selecteer Fork in de rechterbovenhoek van de pagina.
  3. 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

  1. Selecteer in uw Azure DevOps-project pijplijnen>maken en selecteer vervolgens GitHub als de locatie van uw broncode.
  2. Selecteer in het scherm Een opslagplaats selecteren uw geforkte voorbeeldopslagplaats.
  3. 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 .

Schermopname van de koppeling gepubliceerde buildartefacten.

Op de pagina Artefacten worden de gepubliceerde buildartefacten weergegeven. Schermopname van gepubliceerde buildartefacten.

Schermopname van de voltooide Python-taak.

Op de pagina Artefacten worden de gepubliceerde buildartefacten weergegeven. Schermopname van de koppeling gepubliceerde buildartefacten.

Selecteer het tabblad Tests om de testresultaten weer te geven.

Schermopname van de resultaten van de pijplijntest.

Selecteer Uitvoeren.

Het buildnummer wordt boven aan de pagina weergegeven. Selecteer het buildnummer om de details van de build te bekijken.

Schermopname van de koppeling voor het bouwen van pijplijnen.

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 .

Schermopname van de voltooide Python-taak.

Selecteer het tabblad Tests om de testresultaten weer te geven.

Schermopname van de resultaten van de pijplijntest.

Opschonen

Wanneer u deze quickstart hebt voltooid, kunt u het Azure DevOps-project verwijderen dat u hebt gemaakt.

  1. Selecteer in uw project het tandwielpictogram Van Project-instellingen in de linkerbenedenhoek van de pagina.
  2. Selecteer Verwijderen onder aan de overzichtspagina van Project.
  3. 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).

Volgende stappen