Compartir a través de


Uso del proxy de desarrollo con Azure Pipelines

De un vistazo
Objetivo: Usar Dev Proxy en Azure Pipelines
Tiempo: 20 minutos
Complementos: Varios
Requisitos previos:Configuración del proxy de desarrollo, Azure DevOps

El uso de Dev Proxy con Azure Pipelines es una excelente manera de probar las aplicaciones en un entorno controlado. Siguiendo estos pasos, puede usar Dev Proxy con Azure Pipelines.

Nota

En este artículo, se usa un agente de Ubuntu para Azure Pipelines.

Instalar el proxy de desarrollo y almacenarlo en caché

Comience instalando Dev Proxy en el agente utilizando una tarea de script.

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

De forma predeterminada, se instala la versión más reciente del proxy de desarrollo. Si desea instalar una versión específica, puede especificarla pasando una versión al final del script:

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

Una práctica recomendada es almacenar en caché los archivos de instalación del proxy de desarrollo para acelerar las ejecuciones posteriores. Puedes utilizar la tarea Cache para este propósito. Así es como puede hacerlo:

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 proxy de desarrollo

Al iniciar Dev Proxy en una canalización de CI/CD, puede iniciarlo desde un script o incluir el script directamente. Cuando el script esté listo, invoquelo en el archivo de canalización:

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

Controlar proxy de desarrollo

Para controlar Dev Proxy, puede usar la API de Dev Proxy. Por ejemplo, para iniciar la grabación de solicitudes, puede enviar una solicitud POST al /proxy punto de conexión:

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

Carga de registros del proxy de desarrollo como artefactos

Al ejecutar el Dev Proxy en una canalización de CI/CD, es posible que desees analizar los registros más adelante. Para mantener los registros del proxy de desarrollo, puede cargarlos como artefactos:

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

Suba los informes del proxy de desarrollo

Si está usando un proxy de desarrollo para analizar las solicitudes, es posible que también quiera subir los informes en forma de artefactos:

- 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'

Archivo de canalización de ejemplo

Este es un ejemplo sencillo de cómo usar Dev Proxy en un pipeline de Azure. Este flujo de trabajo instala el proxy de desarrollo, lo inicia, envía una solicitud mediante curl y, a continuación, muestra los registros.

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 también