Compilare app Python

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

È possibile usare Azure Pipelines per compilare, testare e distribuire app e script Python come parte del sistema CI/CD.

In questa guida introduttiva si apprenderà come creare una pipeline per compilare e testare un'app Python.

Non è necessario configurare alcun elemento per Azure Pipelines per compilare progetti Python. Python è preinstallato in agenti di compilazione ospitati da Microsoft per Linux, macOS o Windows. Per vedere quali versioni di Python sono preinstallate, vedere Usare un agente ospitato da Microsoft.

Prerequisiti

  • Un account GitHub in cui è possibile creare un repository. Crearne una gratuitamente.
  • Un'organizzazione di Azure DevOps. Crearne una gratuitamente.
  • Un progetto Azure DevOps. Crearne uno usando la Creazione guidata progetto Azure DevOps.
  • Possibilità di eseguire pipeline su agenti ospitati da Microsoft. È possibile acquistare un processo parallelo oppure richiedere un livello gratuito.
  • Un account GitHub in cui è possibile creare un repository. Crearne una gratuitamente.
  • Un server Azure DevOps.
  • Un progetto Azure DevOps. Crearne uno usando la Creazione guidata progetto di Azure DevOps Server.
  • Agente self-hosted. Per crearne uno, vedere Agenti self-hosted.
  • Versioni di Python installate nell'agente self-hosted. Per informazioni su come installare Python nell'agente, vedere UsePythonVersion.

1. Creare una copia tramite fork del codice di esempio

Creare un fork del repository Python di esempio nell'account GitHub.

  1. Passare al repository python-sample-vscode-flask-tutorial .
  2. Selezionare Fork nell'angolo superiore destro della pagina.
  3. Selezionare l'account GitHub in cui si vuole creare una copia tramite fork del repository e immettere un nome per il repository con fork.

2. Creare la pipeline

  1. Passare ad Azure Pipelines e selezionare Avvia gratuitamente. Se richiesto, accedere all'account DevOps.

  2. Passare al progetto e selezionare Pipeline>Crea pipeline.

  3. Selezionare GitHub come percorso del codice sorgente.

  4. Se si viene reindirizzati a GitHub per accedere, immettere le credenziali di GitHub.

  5. Quando viene visualizzato l'elenco dei repository, selezionare il repository di esempio con fork.

  6. Nella scheda Configura la pipeline selezionare Pipeline di avvio.

  1. In un browser passare alla raccolta devOps Server.

  2. Passare al progetto e selezionare Pipeline>Crea una nuova pipeline.

  3. Selezionare GitHub Enterprise Server come percorso del codice sorgente.

  4. Se si viene reindirizzati a GitHub per accedere, immettere le credenziali di GitHub.

  5. Quando viene visualizzato l'elenco dei repository, selezionare il repository di esempio con fork.

  6. Nella scheda Configura la pipeline selezionare Pipeline di avvio.

3. Personalizzare la pipeline

Sostituire il contenuto del file azure-pipelines.yml generato con il codice seguente. Questo codice installa la versione di Python necessaria e le dipendenze, inserisce il pacchetto Python in un file ZIP pubblicato nella pipeline ed esegue test.

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'

Personalizzare l'oggetto azure-pipelines.yml in modo che corrisponda alla configurazione del progetto.

  1. Sostituire il codice YAML generato con il codice seguente. Questo codice installa la versione di Python necessaria e le dipendenze, inserisce il pacchetto Python in un file ZIP pubblicato nella pipeline ed esegue test.
  2. Se si dispone di un pool di agenti diverso, modificare il parametro del pool name .
  3. Modificare la versione di Python in modo che corrisponda a una versione installata nell'agente self-hosted.
  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'

4. Eseguire la pipeline

Salvare ed eseguire la pipeline.

  1. Seleziona Salva ed Esegui.
  2. Nella finestra di dialogo Salva ed esegui selezionare Salva ed esegui.
  3. Nella scheda Riepilogo è possibile visualizzare lo stato dell'esecuzione della pipeline.
  1. Selezionare Esegui.
  2. Il numero di build viene visualizzato nella parte superiore della pagina. Selezionare il numero di build per visualizzare i dettagli della compilazione.

Screenshot del collegamento di compilazione della pipeline.

Screenshot dei processi Python completati.

Per visualizzare l'artefatto di compilazione. Selezionare il collegamento pubblicato nella scheda Riepilogo .

Screenshot del collegamento degli artefatti di compilazione pubblicati.

La pagina Artefatti mostra gli artefatti di compilazione pubblicati.

Screenshot degli artefatti di compilazione pubblicati.

Per visualizzare i risultati del test, selezionare la scheda Test .

Screenshot dei risultati dei test della pipeline.

La scheda Riepilogo mostra lo stato dell'esecuzione della pipeline.

Screenshot del processo Python completato.

Per visualizzare l'artefatto di compilazione, selezionare il collegamento pubblicato nella scheda Riepilogo .

Screenshot del collegamento degli artefatti di compilazione pubblicati.

Per visualizzare i risultati del test, selezionare la scheda Test .

Screenshot dei risultati dei test della pipeline.

La scheda Riepilogo mostra lo stato dell'esecuzione della pipeline.

Screenshot del processo Python completato.

Per scaricare l'artefatto di compilazione, selezionare il collegamento a discesa nella sezione Build artifacts published (Compila artefatti pubblicati ).

Per visualizzare i risultati del test, selezionare la scheda Test .

Screenshot dei risultati dei test della pipeline.

Eseguire la pulizia

Al termine di questa guida introduttiva, è possibile eliminare il progetto creato in Azure DevOps.

  1. Selezionare l'icona a forma di ingranaggio Impostazioni progetto nell'angolo inferiore sinistro della pagina.
  2. Nella parte inferiore della pagina panoramica del progetto selezionare Elimina.
  3. Immettere il nome del progetto e selezionare Elimina.

L'avvio rapido è stato completato correttamente.

Passaggi successivi