Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На первый взгляд
Цель: Использование прокси-сервера разработки в Azure Pipelines
Время: 20 минут
Плагины: Разные
Предварительные требования:настройка прокси-сервера разработки, Azure DevOps
Использование прокси-сервера разработки с Azure Pipelines — отличный способ тестирования приложений в управляемой среде. Следуя этим инструкциям, вы можете использовать прокси-сервер разработки с Azure Pipelines.
Заметка
В этой статье мы используем агент Ubuntu для Azure Pipelines.
Установка прокси-сервера разработки и его кэширование
Начните с установки Dev Proxy на агенте, используя задачу скрипта для его установки.
- script: bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
displayName: 'Install Dev Proxy'
По умолчанию устанавливается последняя версия прокси-сервера разработки. Если вы хотите установить определенную версию, ее можно указать, передав версию в конце сценария:
- script: bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" v1.0.0
displayName: 'Install Dev Proxy v1.0.0'
Рекомендуется кэшировать файлы установки прокси-сервера разработки, чтобы ускорить последующие запуски. Вы можете использовать задачу Cache для этой цели. Вот как это сделать:
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')
Запуск прокси-сервера разработки
При запуске Dev Proxy в конвейере CI/CD его можно запустить из скрипта или включить скрипт напрямую в код. Когда скрипт готов, вызовите его в файле конвейера:
- script: bash ./run.sh
displayName: 'Start Dev Proxy'
Управление прокси-сервером разработки
Для управления прокси-сервером разработки можно использовать API прокси-сервера разработки. Например, чтобы начать запись запросов, можно отправить запрос POST в конечную точку /proxy :
- script: |
curl -X POST http://localhost:8897/proxy -H "Content-Type: application/json" -d '{"recording": true}'
displayName: 'Start recording'
Загрузка журналов Dev Proxy в качестве артефактов
При запуске прокси-сервера разработки в конвейере CI/CD может потребоваться проанализировать журналы позже. Чтобы сохранить журналы прокси-сервера разработки, вы можете загрузить их как артефакты:
- task: PublishPipelineArtifact@1
displayName: Upload Dev Proxy logs
inputs:
targetPath: $(LOG_FILE)
artifact: $(LOG_FILE)
Загрузка отчетов Dev Proxy
Если вы используете Dev Proxy для анализа запросов, вы можете также загрузить отчеты в качестве артефактов:
- 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'
Пример файла конвейера
Ниже приведен простой пример использования прокси-сервера разработки в Azure Pipeline. Этот рабочий процесс устанавливает прокси-сервер разработки, запускает его, отправляет запрос через него с помощью curl, а затем отображает журналы.
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'