Partilhar via


Executar pipelines com ambientes Anaconda

Serviços de DevOps do Azure

Configure e use o Anaconda com Python em seu pipeline. Anaconda é uma distribuição Python para ciência de dados e aprendizado de máquina.

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 Requisitos
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.

Introdução

Siga estas instruções para configurar um pipeline para um aplicativo Python de exemplo com o ambiente Anaconda.

  1. Entre em sua organização do Azure DevOps e navegue até seu projeto.

  2. No seu projeto, navegue até à página Pipelines. Em seguida, escolha a ação para criar um novo pipeline.

  3. Percorra as etapas do assistente selecionando primeiro o GitHub como o local do seu código-fonte.

  4. Poderá ser redirecionado para o GitHub para iniciar sessão. Em caso afirmativo, insira suas credenciais do GitHub.

  5. Quando a lista de repositórios aparecer, selecione seu repositório de exemplo Anaconda.

  6. O Azure Pipelines analisa o código em seu repositório e deteta um arquivo existente azure-pipelines.yml .

  7. Selecione Executar.

  8. Uma nova execução é iniciada. Aguarde a conclusão da execução.

Gorjeta

Para fazer alterações no arquivo YAML conforme descrito neste artigo, selecione o pipeline na página Pipelines e edite o azure-pipelines.yml arquivo.

Adicionar conda ao caminho do sistema

Em agentes hospedados, o conda não é incluído por defeito no PATH para evitar que a versão do Python entre em conflito com outras versões instaladas. Utilize o comando do agente task.prependpath para disponibilizar conda para todas as etapas posteriores.

- bash: echo "##vso[task.prependpath]$CONDA/bin"
  displayName: Add conda to PATH

Criar um ambiente

De argumentos de linha de comando

O conda create comando cria um ambiente com os argumentos que você passa.

- bash: conda create --yes --quiet --name myEnvironment
  displayName: Create Anaconda environment

De YAML

Você pode registar um environment.yml arquivo no seu repositório que define a configuração de um ambiente Anaconda.

- script: conda env create --quiet --file environment.yml
  displayName: Create Anaconda environment

Nota

Se você usar um agente auto-hospedado e não remover o ambiente no final, receberá um erro na próxima compilação porque o ambiente já existe. Para resolver, remova o ambiente antes de criar um novo com conda env remove --name your-env-name.

Nota

Se você usar agentes auto-hospedados que compartilham armazenamento e executam trabalhos em paralelo usando os mesmos ambientes Anaconda, pode haver conflitos entre esses ambientes. Para corrigir isto, use o argumento --name e um identificador exclusivo, como o valor do argumento, como uma concatenação com a variável de compilação $(Build.BuildNumber).

Instalar pacotes do Anaconda

O YAML a seguir instala o scipy pacote no ambiente conda chamado myEnvironment.

- bash: |
    conda activate myEnvironment
    conda install --yes --quiet --name myEnvironment scipy
  displayName: Install Anaconda packages

Executar etapas de pipeline em um ambiente Anaconda

Nota

Cada etapa de construção é executada em seu próprio processo. Quando você ativa um ambiente Anaconda, ele edita PATH e faz outras alterações em seu processo atual. Assim, ative um ambiente Anaconda separadamente para cada etapa.

- bash: |
    conda activate myEnvironment
    python -m pytest --junitxml=junit/unit-test.xml
  displayName: pytest

- task: PublishTestResults@2
  inputs:
    testResultsFiles: 'junit/*.xml'
  condition: succeededOrFailed()

FAQ

Por que estou recebendo um erro "Permissão negada"?

No macOS hospedado, o usuário agente não possui o diretório onde o Miniconda está instalado. Para corrigir este problema, vá para o separador "macOS hospedado" em Adicionar conda ao caminho do sistema.

Porque a minha compilação para de responder numa etapa conda create ou conda install?

Se você não passar --yes, o conda para e aguarda a entrada do usuário.

Por que meu script no Windows está parando depois que ele ativa o ambiente?

No Windows, activate é um script batch. Você deve usar o call comando para retomar a execução do script após a ativação. Veja exemplos de uso callem uma pipeline.

Como posso executar meus testes com várias versões do Python?

Vá para Criar aplicativos Python no Azure Pipelines.