Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Использование прокси-сервера разработки с GitHub Actions — отличный способ тестирования приложений в управляемой среде. Если вы хотите использовать прокси-сервер разработки с рабочим процессом GitHub Actions, необходимо включить несколько шагов в файл рабочего процесса, чтобы иметь возможность доверять сертификату прокси-сервера разработки.
Заметка
В этом примере мы будем использовать раннер Ubuntu для GitHub Actions.
Установка прокси-сервера разработки и его кэширование
Сначала установите Dev Proxy на раннер, но только если он не установлен. Чтобы установить и кэшировать прокси разработки, добавьте следующие действия в файл рабочего процесса:
- name: Cache Dev Proxy
id: cache-devproxy
uses: actions/cache@v4
with:
path: ./devproxy
key: devproxy-linux-v0.29.2
- name: Install Dev Proxy
if: steps.cache-devproxy.outputs.cache-hit != 'true'
run: bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" -- v0.29.2
Запуск прокси-сервера разработки
При запуске прокси-сервера разработки в конвейере CI/CD необходимо запустить его из скрипта, чтобы вы могли закрыть его корректно. Когда скрипт готов, вызовите его в файле рабочего процесса:
- name: Run Dev Proxy
run: /bin/bash run-dev-proxy.sh
Отправка журналов прокси-сервера dev в виде артефактов
При запуске Dev-прокси в конвейере CI/CD вам может понадобиться проанализировать журналы позже. Чтобы сохранить журналы Dev Proxy, их можно отправить в виде артефактов:
- name: Upload Dev Proxy logs
uses: actions/upload-artifact@v4
with:
name: ${{ env.LOG_FILE }}
path: ${{ env.LOG_FILE }}
Загрузить отчеты прокси-сервера разработки
Если вы используете Dev Proxy для анализа запросов, вы также можете загрузить отчеты как артефакты.
- name: Upload Dev Proxy reports
uses: actions/upload-artifact@v4
with:
name: Reports
path: ./*Reporter*
Создание сводки задания
Чтобы упростить понимание результатов рабочего процесса, можно написать сводку в конце задания. Как правило, для создания сводок заданий используется MarkdownReporter
, так как он создает выходные данные в формате Markdown:
- name: Write summary
run: |
cat YourPlugin_MarkdownReporter.md >> $GITHUB_STEP_SUMMARY
Пример файла рабочего процесса
Вот пример полного файла рабочего процесса, использующего Dev Proxy (на основе примера от Elio Struyf):
name: Test app using Dev Proxy
on:
push:
branches:
- main
- dev
workflow_dispatch:
jobs:
test:
name: Test app using Dev Proxy
timeout-minutes: 60
runs-on: ubuntu-latest
env:
LOG_FILE: devproxy.log
DEVPROXY_VERSION: v0.29.2
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
cache: "npm"
- name: Install dependencies
run: npm ci
#################################
# Cache + install of Playwright #
#################################
- name: Store Playwright's Version
run: |
PLAYWRIGHT_VERSION=$(npm ls @playwright/test | grep @playwright | sed 's/.*@//')
echo "Playwright's Version: $PLAYWRIGHT_VERSION"
echo "PLAYWRIGHT_VERSION=$PLAYWRIGHT_VERSION" >> $GITHUB_ENV
- name: Cache Playwright Browsers for Playwright's Version
id: cache-playwright
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: playwright-ubuntu-${{ env.PLAYWRIGHT_VERSION }}
- name: Install Playwright Browsers
if: steps.cache-playwright.outputs.cache-hit != 'true'
run: npx playwright install --with-deps
################################
# Cache + install of Dev Proxy #
################################
- name: Cache Dev Proxy
id: cache-devproxy
uses: actions/cache@v4
with:
path: ./devproxy
key: devproxy-ubuntu-${{ env.DEVPROXY_VERSION }}
- name: Install Dev Proxy
if: steps.cache-devproxy.outputs.cache-hit != 'true'
run: bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)" -- ${{ env.DEVPROXY_VERSION }}
- name: Run Dev Proxy
run: /bin/bash run.sh
- name: Upload Dev Proxy logs
uses: actions/upload-artifact@v4
with:
name: ${{ env.LOG_FILE }}
path: ${{ env.LOG_FILE }}
# only when using a reporting plugin with the Markdown reporter
- name: Upload Dev Proxy reports
uses: actions/upload-artifact@v4
with:
name: Reports
path: ./*Reporter*
# only when using a reporting plugin with the Markdown reporter
- name: Write summary
run: |
cat SomePlugin_MarkdownReporter.md >> $GITHUB_STEP_SUMMARY