Partilhar via


Usar o Proxy de Desenvolvimento com o Azure Pipelines

De relance
Objetivo: Use Dev Proxy in Azure Pipelines
Tempo: 20 minutos
Plugins: Vários
Prerequisites:Set up Dev Proxy, Azure DevOps

Usar o Proxy de Desenvolvimento com o Azure Pipelines é uma ótima maneira de testar seus aplicativos em um ambiente controlado. Seguindo estas etapas, você pode usar o Proxy de Desenvolvimento com seus Pipelines do Azure.

Observação

Neste artigo, usamos um agente do Ubuntu para o Azure Pipelines.

Instale o Dev Proxy e armazene-o em cache

Comece instalando o Dev Proxy no agente usando uma tarefa de script para instalar o Dev Proxy.

- script: bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
  displayName: 'Install Dev Proxy'

Por padrão, isso instala a versão mais recente do Dev Proxy. Se você quiser instalar uma versão específica, você pode especificá-la passando uma versão no final do script:

- script: bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" v1.0.0
  displayName: 'Install Dev Proxy v1.0.0'

Uma prática recomendada é armazenar em cache os arquivos de instalação do Dev Proxy para acelerar as execuções subsequentes. Você pode usar a tarefa Cache para essa finalidade. Veja como você pode fazer isso:

variables:
- name: DEV_PROXY_VERSION
  value: v1.0.0
- name: DEV_PROXY_CACHE_RESTORED
  value: 'false'

steps:
- task: Cache@2
  inputs:
    key: '"dev-proxy-$(DEV_PROXY_VERSION)"'
    path: ./devproxy
    cacheHitVar: DEV_PROXY_CACHE_RESTORED
  displayName: Cache Dev Proxy

- script: bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" $DEV_PROXY_VERSION
  displayName: 'Install Dev Proxy'
  condition: ne(variables.DEV_PROXY_CACHE_RESTORED, 'true')

Iniciar Dev Proxy

Ao iniciar o Proxy de Desenvolvimento em um pipeline de CI/CD, pode-se iniciá-lo a partir de um script ou incluir o script em linha. Quando tiver o script pronto, invoque-o no arquivo de pipeline:

- script: bash ./run.sh
  displayName: 'Start Dev Proxy'

Proxy de Controlo de Desenvolvimento

Para controlar o Dev Proxy, você pode usar a API do Dev Proxy. Por exemplo, para iniciar a gravação de solicitações, você pode enviar uma solicitação POST para o /proxy ponto de extremidade:

- script: |
    curl -X POST http://localhost:8897/proxy -H "Content-Type: application/json" -d '{"recording": true}'
  displayName: 'Start recording'

Carregar logs do Dev Proxy como artefatos

Ao executar o Dev Proxy em um pipeline de CI/CD, convém analisar os logs mais tarde. Para manter os logs do Dev Proxy, você pode carregá-los como artefatos:

- task: PublishPipelineArtifact@1
  displayName: Upload Dev Proxy logs
  inputs:
    targetPath: $(LOG_FILE)
    artifact: $(LOG_FILE)

Carregar relatórios do Dev Proxy

Se você estiver usando o Dev Proxy para analisar as solicitações, talvez queira carregar os relatórios como artefatos também:

- script: |
    mkdir -p $(Build.ArtifactStagingDirectory)/Reports
    for file in *Reporter*; do
      if [ -f "$file" ]; then
        cp "$file" $(Build.ArtifactStagingDirectory)/Reports
      fi
    done
  displayName: 'Copy reports to artifact directory'

- task: PublishPipelineArtifact@1
  displayName: Upload Dev Proxy reports
  inputs:
    targetPath: '$(Build.ArtifactStagingDirectory)/Reports'
    artifact: 'Reports'

Exemplo de ficheiro de pipeline

Aqui está um exemplo simples de como usar o Proxy de Desenvolvimento em um Pipeline do Azure. Este fluxo de trabalho instala o Dev Proxy, inicia-o, envia uma solicitação através dele usando curl e, em seguida, mostra os logs.

trigger:
- main
- dev

pool:
  vmImage: ubuntu-latest

variables:
- name: DEV_PROXY_VERSION
  value: v1.0.0

steps:
- script: bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" $DEV_PROXY_VERSION
  displayName: 'Install Dev Proxy'

- script: bash ./start.sh
  displayName: 'Start Dev Proxy'

- script: |
     curl -ikx http://127.0.0.1:8000 https://jsonplaceholder.typicode.com/posts
  displayName: 'Send request'

- script: |
    curl -X POST http://localhost:8897/proxy/stop
  displayName: 'Stop Dev Proxy'

- script: |
    echo "Dev Proxy logs:"
    cat devproxy.log
  displayName: 'Show Dev Proxy logs'

Consulte também