Partilhar via


Criar e publicar um aplicativo Python

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

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 Usar um agente hospedado pela Microsoft.

Fork o 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 da página.
  3. Selecione sua conta no GitHub. Por padrão, a bifurcação tem o mesmo nome que o repositório pai, mas você pode nomeá-la como algo 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 concluir o processo. Para obter mais informações, consulte Acesso a repositórios do GitHub.

Crie seu pipeline

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

Personalizar o pipeline

Na tela Revisar seu pipeline YAML, substitua o conteúdo do arquivo de 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 constroem artefatos em um arquivo ZIP.
  • Publica o arquivo no 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 pool name .
  • Se necessário, altere a versão do Python 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 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 seu artefato de compilação, selecione o link publicado na guia Resumo .

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

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

Captura de tela do trabalho Python concluído.

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

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

Captura de tela dos resultados do teste de 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 da compilação.

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

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

Para baixar seu artefato de compilação, selecione o link suspenso na seção Artefatos de compilação publicados .

Captura de tela do trabalho Python concluído.

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

Captura de tela dos resultados do teste de pipeline.

Limpeza

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

  1. No 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. Digite o nome do projeto e selecione Excluir.

Parabéns, você criou e executou com sucesso 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 de seu sistema de integração contínua e entrega contínua (CI/CD).

Próximos passos