Partilhar via


Criar e publicar um aplicativo Python

Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022

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

Pré-requisitos

O Python está 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 estão pré-instaladas, consulte Software.

Produto Requerimentos
Azure DevOps - Um projeto Azure DevOps.
- Capacidade de executar pipelines em agentes hospedados pela Microsoft. Você pode comprar um trabalho paralelo ou solicitar um nível gratuito.
- Conhecimentos básicos de YAML e 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 compilação definida como Permitir. Os membros do grupo Administradores de Projeto podem gerenciar pipelines.
    - Para criar conexões de serviço: Você deve ter a função de Administrador ou Criador para conexões de serviço.
GitHub - Uma conta GitHub.
- Uma ligação de serviço do GitHub para autorizar o Azure Pipelines.
Produto Requerimentos
Azure DevOps - Um projeto Azure DevOps.
- Um agente auto-hospedado com Python 3.12 ou outra versão Python instalada. Para criar um, veja Agentes hospedados por conta própria.
- Conhecimentos básicos de YAML e 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 compilação definida como Permitir. Os membros do grupo Administradores de Projeto podem gerenciar pipelines.
    - Para criar conexões de serviço: Você deve ter a função de Administrador ou Criador para conexões de serviço.
GitHub - Uma conta GitHub.
- Uma ligaçã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:

  • Iniciar sessão.
  • Autorize o Azure Pipelines.
  • Autentique-se 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, consulte Acesso a repositórios do GitHub.

Crie uma cópia do código de exemplo

Fork o repositório Python de exemplo para sua conta do GitHub.

  1. Vá para o repositório python-sample-vscode-flask-tutorial .
  2. Selecione Forquilha no canto superior direito.
  3. Verifique se o nome da sua conta do GitHub está selecionado em Proprietário e selecione Criar bifurcação. A bifurcação tem o mesmo nome que o repositório pai por padrão, mas você pode nomeá-la como algo diferente.

Crie o seu pipeline

  1. No seu projeto do Azure DevOps, selecione Pipelines no menu de navegação esquerdo e, em seguida, selecione Novo pipeline ou Criar pipeline se este pipeline for o primeiro no projeto.
  2. Na tela Onde está seu código , selecione GitHub como o local do seu código-fonte.
  3. Na tela Select a repository (Selecione um repositório ), selecione seu repositório de exemplo Python bifurcado.
  4. Na tela Configurar seu pipeline , selecione Pipeline inicial.

Personalize a sua linha de produção

No ecrã Revise o seu pipeline YAML, substitua o conteúdo do arquivo gerado azure-pipelines.yml 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 constroem artefatos em um arquivo ZIP.
  3. Publica o arquivo no 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'

No ecrã Revise o seu pipeline YAML, substitua o conteúdo do arquivo gerado azure-pipelines.yml 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 constroem artefatos em um arquivo ZIP.
  3. Publica o arquivo no 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 no 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'

Execute o 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 para cada versão especificada do Python. As três versões podem ser executadas em paralelo em diferentes agentes.

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

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

Exibir artefatos e resultados de testes

Para exibir seus artefatos de compilação, selecione o link [N] publicado na guia Resumo .

Captura de ecrã do link de artefactos de construção publicados.

A página Artefatos mostra os artefatos de construção publicados.

Captura de ecrã de artefatos de construção publicados.

Captura de tela de artefatos de construção publicados para um único trabalho.

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

Captura de ecrã dos resultados do teste do pipeline.

Limpeza

Se você tiver terminado de usar o pipeline que criou, poderá excluí-lo.

  1. Selecione Pipelines no menu de navegação esquerdo do seu projeto.

  2. Na lista de pipeline, 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 do pipeline, selecione o ícone Mais ações no canto superior direito e, em seguida, selecione Excluir.

  3. Digite 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 seu processo de CI/CD.

Próximo passo