Partilhar via


Executar pipelines com ambientes Anaconda

Serviços de DevOps do Azure

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

Começar agora

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é a 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 analisará o código em seu repositório e detetará 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 tópico, 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 é deixado de PATH fora por padrão para evitar que sua versão Python entre em conflito com outras versões instaladas. O task.prependpath comando agent o disponibilizará para todas as etapas subsequentes.

- 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 criará um ambiente com os argumentos que você passar.

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

De YAML

Você pode fazer check-in de um environment.yml arquivo para seu repositório que define a configuração para um ambiente Anaconda.

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

Nota

Se você estiver usando um agente auto-hospedado e não remover o ambiente no final, você receberá um erro na próxima compilação, pois o ambiente já existe. Para resolver, use o --force argumento: conda env create --quiet --force --file environment.yml.

Nota

Se você estiver usando agentes auto-hospedados que estão compartilhando armazenamento e executando trabalhos em paralelo usando os mesmos ambientes Anaconda, pode haver conflitos entre esses ambientes. Para resolver, use o --name argumento e um identificador exclusivo como o valor do argumento, como uma concatenação com a $(Build.BuildNumber) variável build.

Instalar pacotes do Anaconda

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

- bash: |
    source 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. Portanto, um ambiente Anaconda deve ser ativado separadamente para cada etapa.

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

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

FAQs

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

No macOS hospedado, o usuário agente não tem a propriedade do diretório onde o Miniconda está instalado. Para uma correção, consulte a guia "macOS hospedado" em Adicionar conda ao caminho do sistema.

Por que minha compilação para de responder em uma conda create ou conda install etapa?

Se você esquecer de passar --yes, conda vai parar e esperar pela interação do usuário.

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

No Windows, activate é um script em lote. Você deve usar o comando para continuar a executar o script após a call ativação. Veja exemplos de uso call em um pipeline.

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

Consulte Criar aplicativos Python no Azure Pipelines.