Compartilhar via


Criar e publicar um aplicativo Python

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

Neste início rápido, você cria um pipeline que compila e testa um aplicativo Python. Você verá como usar o Azure Pipelines para criar, testar e implantar aplicativos e scripts Python como parte do sistema de CI/CD (integração contínua e entrega contínua).

Pré-requisitos

O Python é pré-instalado em agentes hospedados pela Microsoft para Linux, macOS e Windows. Você não precisa configurar mais nada para construir projetos Python. Para ver quais versões do Python são pré-instaladas, confira Usar um agente hospedado pela Microsoft.

Bifurcar o código de exemplo

Bifurque o repositório de amostra do Python para sua conta do GitHub.

  1. Vá para o repositório python-sample-vscode-flask-tutorial.
  2. Selecione Bifurcar no canto superior direito da página.
  3. Selecione sua conta do GitHub. Por padrão, a bifurcação tem o mesmo nome do repositório pai, mas você pode nomeá-la de forma diferente.

Importante

Durante os procedimentos a seguir, você pode ser solicitado a criar uma conexão de serviço do GitHub ou redirecionado para o GitHub para entrar, instalar o Azure Pipelines ou autorizar o Azure Pipelines. Siga as instruções na tela para efetuar o processo. Para obter mais informações, confira Acesso ao repositórios do GitHub.

Criar o pipeline

  1. No projeto do Azure DevOps, selecione Pipelines>Create Pipeline e, em seguida, selecione GitHub como o local do código-fonte.
  2. Na tela Selecionar um repositório , selecione o repositório de amostra bifurcado.
  3. Na página Configurar seu pipeline, selecione Pipeline inicial.

Personalizar o pipeline

Na tela Examinar o YAML do pipeline, substitua o conteúdo do arquivo azure-pipelines.yml gerado pelo código a seguir. O código:

  • Instala as versões e dependências necessárias do Python.
  • Os pacotes criam artefatos em um arquivo ZIP.
  • Publica o arquivo morto em seu pipeline.
  • Executa testes.
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'

Personalize azure-pipelines.yml para corresponder à configuração do seu projeto.

  • Se você tiver um pool de agentes diferente, altere o parâmetro name do pool.
  • Se necessário, altere a versão do Python para uma versão instalada em seu agente auto-hospedado.
  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'

Executar seu pipeline

Selecione Salvar e executar e, em seguida, selecione Salvar e executar novamente.

A guia Resumo mostra o status da execução do pipeline.

Para exibir o artefato de compilação, selecione o link publicado na guia Resumo.

Captura de tela do link de artefatos de compilação publicados.

A página Artefatos mostra os artefatos de compilação publicados. Captura de tela de artefatos de compilação publicados.

Captura de tela do trabalho Python concluído.

A página Artefatos mostra os artefatos de compilação publicados. Captura de tela do link de artefatos de compilação publicados.

Para ver os resultados do teste, selecione a guia Testes.

Captura de tela dos resultados de teste do pipeline.

Selecione Executar.

O número da compilação é exibido na parte superior da página. Selecione o número da compilação para ver os detalhes dela.

Captura de tela do link de construção do pipeline.

A guia Resumo mostra o status da execução do pipeline.

Para baixar o artefato de compilação, selecione o link soltar na sessão Artefatos de build publicados.

Captura de tela do trabalho Python concluído.

Para ver os resultados do teste, selecione a guia Testes.

Captura de tela dos resultados de teste do pipeline.

Limpar

Ao concluir este início rápido, você poderá excluir o projeto do Azure DevOps que você criou.

  1. Em seu projeto, selecione o ícone de engrenagem Configurações do projeto no canto inferior esquerdo da página.
  2. Na parte inferior da página Visão geral do projeto, selecione Excluir.
  3. Insira o nome do projeto e selecione Excluir.

Parabéns, você criou e executou com êxito um pipeline que criou e testou um aplicativo Python. Agora você pode usar o Azure Pipelines para criar, testar e implantar aplicativos e scripts do Python como parte de seu sistema de CI/CD (integração contínua e entrega contínua).

Próximas etapas