Skapa och publicera en Python-app

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

I den här snabbstarten skapar du en pipeline som skapar och testar en Python-app. Du ser hur du använder Azure Pipelines för att skapa, testa och distribuera Python-appar och -skript som en del av ditt SYSTEM för kontinuerlig integrering och kontinuerlig leverans (CI/CD).

Förutsättningar

Python är förinstallerat på Microsoft-värdbaserade agenter för Linux, macOS och Windows. Du behöver inte konfigurera något mer för att skapa Python-projekt. Information om vilka Python-versioner som är förinstallerade finns i Använda en Microsoft-värdbaserad agent.

Förgrena exempelkoden

Förgrena Python-exempellagringsplatsen till ditt GitHub-konto.

  1. Gå till lagringsplatsen python-sample-vscode-flask-tutorial .
  2. Välj Förgrening i det övre högra hörnet på sidan.
  3. Välj ditt GitHub-konto. Som standard namnges förgreningen på samma sätt som den överordnade lagringsplatsen, men du kan ge den ett annat namn.

Viktigt!

Under följande procedurer kan du uppmanas att skapa en GitHub-tjänstanslutning eller omdirigeras till GitHub för att logga in, installera Azure Pipelines eller auktorisera Azure Pipelines. Följ anvisningarna på skärmen för att slutföra processen. Mer information finns i Åtkomst till GitHub-lagringsplatser.

Skapa din pipeline

  1. I ditt Azure DevOps-projekt väljer du Pipelines Create Pipeline (Pipelines>Create Pipeline) och sedan GitHub som plats för källkoden.
  2. På skärmen Välj en lagringsplats väljer du din förgrenade exempellagringsplats.
  3. På skärmen Konfigurera pipeline väljer du Startpipeline.

Anpassa din pipeline

På skärmen Granska yaml-pipelinen ersätter du innehållet i den genererade azure-pipelines.yml-filen med följande kod. Koden:

  • Installerar nödvändiga Python-versioner och beroenden.
  • Paket skapar artefakter till ett ZIP-arkiv.
  • Publicerar arkivet till din pipeline.
  • Kör tester.
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'

Anpassa azure-pipelines.yml för att matcha projektkonfigurationen.

  • Om du har en annan agentpool ändrar du poolparametern name .
  • Om det behövs ändrar du Python-versionen till en version som är installerad på din lokala 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'

Kör din pipeline

Välj Spara och kör och välj sedan Spara och kör sedan igen.

Fliken Sammanfattning visar status för pipelinekörningen.

Om du vill visa din byggartefakt väljer du den publicerade länken på fliken Sammanfattning .

Skärmbild av länken för publicerade kompileringsartefakter.

sidan Artefakter visas publicerade byggartefakter. Skärmbild av publicerade byggartefakter.

Skärmbild av slutfört Python-jobb.

sidan Artefakter visas publicerade byggartefakter. Skärmbild av länken för publicerade kompileringsartefakter.

Om du vill visa testresultaten väljer du fliken Tester .

Skärmbild av pipelinetestresultat.

Markera Kör.

Versionsnumret visas överst på sidan. Välj versionsnumret för att se information om bygget.

Skärmbild av länken för pipelinebygge.

Fliken Sammanfattning visar status för pipelinekörningen.

Om du vill ladda ned din byggartefakt väljer du släpplänken från avsnittet Skapa artefakter som publicerats.

Skärmbild av slutfört Python-jobb.

Om du vill visa testresultaten väljer du fliken Tester .

Skärmbild av pipelinetestresultat.

Rensa

När du är klar med den här snabbstarten kan du ta bort det Azure DevOps-projekt som du skapade.

  1. I projektet väljer du kugghjulsikonen Projektinställningar i det nedre vänstra hörnet på sidan.
  2. Längst ned på sidan Projektöversikt väljer du Ta bort.
  3. Ange projektnamnet och välj Ta bort.

Grattis, du har skapat och kört en pipeline som har skapat och testat en Python-app. Nu kan du använda Azure Pipelines för att skapa, testa och distribuera Python-appar och -skript som en del av ditt SYSTEM för kontinuerlig integrering och kontinuerlig leverans (CI/CD).

Nästa steg