Condividi tramite


Compilare e pubblicare un'app Python

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

In questo avvio rapido, si crea una pipeline che compila e testa un'app Python. Si vedrà come usare Azure Pipelines per compilare, testare e distribuire script e app Python come parte del sistema di integrazione continua e recapito continuo (CI/CD).

Prerequisiti

Prodotto Requisiti
Azure DevOps - Un progetto Azure DevOps.
- La possibilità di eseguire pipeline su agenti ospitati da Microsoft. È possibile acquistare un incarico parallelo oppure richiedere un piano gratuito.
- Conoscenza di base di YAML e Azure Pipelines. Per maggiori informazioni, vedere Creare la prima pipeline.
Autorizzazioni - :
     - Per creare una pipeline, è necessario trovarsi nel gruppo Collaboratori e il gruppo deve avere l'autorizzazione Crea pipeline di compilazione impostata su Consenti. I membri del gruppo Project Administrators possono gestire le pipeline.
    - Per creare connessioni al servizio: è necessario disporre del ruolo di Administrator o Creator per le connessioni al servizio .
GitHub - Un account GitHub.
- Una connessione al servizio GitHub per autorizzare Azure Pipelines.
Azzurro Una sottoscrizione di Azure.
Prodotto Requisiti
Azure DevOps - Un progetto Azure DevOps.
- Agente autonomo. Per crearne uno, vedere Agenti self-hosted.
- Conoscenza di base di YAML e Azure Pipelines. Per maggiori informazioni, vedere Creare la prima pipeline.
Autorizzazioni - :
    - Per creare una pipeline, è necessario trovarsi nel gruppo Collaboratori e il gruppo deve avere l'autorizzazione Crea pipeline di compilazione impostata su Consenti. I membri del gruppo Project Administrators possono gestire le pipeline.
    - Per creare connessioni al servizio: è necessario disporre del ruolo di Administrator o Creator per le connessioni al servizio .
GitHub - Un account GitHub.
- Una connessione al servizio GitHub per autorizzare Azure Pipelines.
Azzurro Una sottoscrizione di Azure.

Python è preinstallato in agenti ospitati da Microsoft per Linux, macOS e Windows. Non è necessario configurare altro per compilare progetti Python. Per vedere quali versioni di Python sono preinstallate, vedere Usare un agente ospitato da Microsoft.

Creare una copia tramite fork del codice di esempio

Effettua un fork del repository Python di esempio sul tuo account GitHub.

  1. Accedi al repository python-sample-vscode-flask-tutorial.
  2. Selezionare Fork nell'angolo superiore destro della pagina.
  3. Selezionare l'account GitHub. Per impostazione predefinita, il fork è chiamato come il repository padre, ma puoi chiamarlo in modo diverso.

Importante

Durante le procedure seguenti, potrebbe essere richiesto di creare una connessione al servizio GitHub o reindirizzare a GitHub per accedere, installare Azure Pipelines o autorizzare Azure Pipelines. Seguire le istruzioni visualizzate per completare il processo. Per altre informazioni, vedere Accedere ai repository GitHub.

Crea la tua pipeline

  1. Nel progetto Azure DevOps, selezionare Pipeline>Crea Pipeline e quindi selezionare GitHub come percorso del codice sorgente.
  2. Nella schermata Selezionare un repository, seleziona il tuo repository di esempio forkato.
  3. Nella schermata Configura la pipeline, selezionare Pipeline di base.

Personalizzare la pipeline

Nella schermata Esaminare il file YAML della pipeline, sostituire il contenuto del file azure-pipelines.yml generato con il codice seguente. Il codice:

  • Installa le versioni e le dipendenze di Python necessarie.
  • I pacchetti creano artefatti in un archivio ZIP.
  • Pubblica l'archivio alla tua pipeline.
  • 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 azure-pipelines.yml in modo che corrisponda alla configurazione del progetto.

  • Se si dispone di un pool di agenti diverso, modificare il parametro del pool name .
  • Se necessario, cambiare la versione di Python con 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'

Esegui la pipeline

Selezionare Salva ed esegui, quindi selezionare Salva ed esegui di nuovo.

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

Per visualizzare l'artefatto di build, selezionare il link pubblicato nella scheda Riepilogo.

Screenshot del link degli artefatti di build pubblicati.

La pagina degli Artefatti mostra gli artefatti di build pubblicati. Screenshot degli artefatti di build pubblicati.

Screenshot del processo completato di Python.

Sulla pagina Artefatti vengono mostrati gli artefatti di compilazione pubblicati. Screenshot del link degli artefatti di build 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 Azure DevOps creato.

  1. Nel tuo progetto, seleziona l'icona Impostazioni progetto a forma di ingranaggio 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.

Congratulazioni, hai creato ed eseguito con successo una pipeline che ha sviluppato e testato un'app Python. È ora possibile usare Azure Pipelines per compilare, testare e distribuire app e script Python come parte del sistema di integrazione continua e recapito continuo (CI/CD).

Passaggi successivi