Compartilhar via


Criar e publicar um aplicativo Python

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

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, consulte Software.

Produto Requisitos
Azure DevOps - Um projeto do Azure DevOps.
– Capacidade de executar pipelines em agentes hospedados pela Microsoft. Você pode comprar um trabalho paralelo ou solicitar uma camada gratuita.
– Conhecimento básico do YAML e do Azure Pipelines. Para obter mais informações, consulte Criar seu primeiro pipeline.
- Permissões:
     - Para criar um pipeline: você deve estar no grupo Colaboradores e o grupo precisa ter a permissão Criar pipeline de build definida como Permitir. Os membros do grupo Administradores do Projeto podem gerenciar pipelines.
    – Para criar conexões de serviço: você deve ter a função Administrador ou Criador para conexões de serviço.
GitHub - Uma conta do GitHub .
– Uma conexão de serviço do GitHub para autorizar o Azure Pipelines.
Produto Requisitos
Azure DevOps - Um projeto do Azure DevOps.
- Um agente auto-hospedado com Python 3.12 ou outra versão do Python instalada. Para criar um, consulte Agentes auto-hospedados.
– Conhecimento básico do YAML e do Azure Pipelines. Para obter mais informações, consulte Criar seu primeiro pipeline.
- Permissões:
    - Para criar um pipeline: você deve estar no grupo Colaboradores e o grupo precisa ter a permissão Criar pipeline de build definida como Permitir. Os membros do grupo Administradores do Projeto podem gerenciar pipelines.
    – Para criar conexões de serviço: você deve ter a função Administrador ou Criador para conexões de serviço.
GitHub - Uma conta do GitHub .
– Uma conexão de serviço do GitHub para autorizar o Azure Pipelines.

Importante

Os procedimentos do GitHub podem exigir que você execute uma ou mais das seguintes ações no GitHub:

  • Entrar.
  • Autorizar Azure Pipelines.
  • Autenticar em organizações do GitHub.
  • Instale o aplicativo Azure Pipelines.

Siga as instruções para concluir os processos necessários. Para obter mais informações, confira Acesso ao repositórios do GitHub.

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 Fork no canto superior direito.
  3. Verifique se o nome da sua conta do GitHub está selecionado em Proprietário e selecione Criar fork. A bifurcação recebe, por padrão, o mesmo nome do repositório pai, mas você pode renomeá-la como desejar.

Criar o pipeline

  1. Em seu projeto do Azure DevOps, selecione Pipelines no menu de navegação à esquerda e selecione Novo pipeline ou Criar Pipeline se esse pipeline for o primeiro no projeto.
  2. Na tela Onde está o código , selecione o GitHub como o local do código-fonte.
  3. Na tela Selecionar um repositório , selecione o repositório de exemplo do Python bifurcado.
  4. Na página Configurar seu pipeline, selecione Pipeline inicial.

Personalizar um pipeline

Na tela Revise seu YAML do pipeline, substitua o conteúdo do arquivo azure-pipelines.yml gerado pelo código a seguir. O código executa as seguintes ações em três versões diferentes do Python:

  1. Instala a versão e as dependências necessárias do Python.
  2. Os pacotes criam artefatos em um arquivo ZIP.
  3. Publica os arquivos em seu pipeline.
  4. 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'

Na tela Revise seu YAML do pipeline, substitua o conteúdo do arquivo azure-pipelines.yml gerado pelo código a seguir. O código executa as seguintes ações:

  1. Instala a versão e as dependências necessárias do Python.
  2. Os pacotes criam artefatos em um arquivo ZIP.
  3. Publica os arquivos em seu pipeline.
  4. Executa testes.

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

  • Se você tiver um pool de agentes diferente, substitua o espaço reservado do pool name pelo nome do pool ou default.
  • Se necessário, altere o Python versionSpec 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. Você pode selecionar Trabalho na tela Resumo para ver seu trabalho em ação.

O trabalho é executado três vezes, uma vez para cada versão do Python especificada. As três versões podem ser executadas em paralelo em diferentes agentes.

Captura de tela do trabalho do Python concluído com várias versões.

Captura de tela do único trabalho do Python concluído.

Exibir artefatos e resultados de teste

Para visualizar seus artefatos de construção, selecione o link [N] publicado na aba 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 dos artefatos de build publicados para um único trabalho.

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

Captura de tela dos resultados de teste do pipeline.

Limpar

Se terminar de usar o pipeline criado, você poderá excluí-lo.

  1. Selecione Pipelines no menu de navegação à esquerda do projeto.

  2. Na lista de pipelines, passe o mouse sobre o pipeline que você criou, selecione o ícone Mais ações à direita e selecione Excluir.

    Ou selecione o pipeline e, na página de pipeline, selecione o ícone Mais ações no canto superior direito e selecione Excluir.

  3. Insira o nome do pipeline e selecione Excluir novamente.

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 python como parte do processo de CI/CD.

Próxima etapa