← Cloudflare Workers / workers / ci-cd / builds
Конфигурация
При подключении Git-репозитория к вашему Worker можно настроить параметры, необходимые для его сборки и развертывания.
Как работает Workers Builds
Когда коммит отправляется в подключенный репозиторий, Workers Builds выполняет процесс из двух этапов:
- Команда сборки (необязательно) - компилирует ваш проект (например,
npm run buildдля фреймворков, таких как Next.js или Astro) - Команда развертывания - Разворачивает ваш Worker в Cloudflare (по умолчанию
npx wrangler deploy)
Для предварительных сборок (коммитов в ветки, отличные от продакшен-ветки) команда развёртывания заменяется на команда развёртывания предпросмотра (по умолчанию: npx wrangler versions upload), которая создаёт предварительную версию без продвижения в продакшен.
Настройки сборки
Настройки сборки можно найти в разделе Настройки > Build внутри вашего Worker.
Обратите внимание, что при обновлении и сохранении настроек сборки они будут применены к далее сборки. Когда вы повторить сборку, будут применены конфигурации сборки, существовавшие на момент повторного запуска.
Обзор
| Параметр | Описание |
|---|---|
| Учётная запись Git | Выберите учетную запись Git, которую хотите использовать. После первого подключения вы сможете использовать эту учетную запись Git и в других проектах. |
| репозиторий Git | Выберите репозиторий Git, к которому нужно подключить ваш Worker. |
| Ветка Git | Выберите ветку, за новыми коммитами в которой будет следить Cloudflare. По умолчанию используется main. |
| Команда сборки (Необязательно) | Укажите команду сборки, если вашему проекту нужен этап сборки (например, npm run build). Это необходимо, например, при использовании фронтенд-фреймворк например Next.js или Remix. |
| Команда развертывания | Команда deploy позволяет задать конкретная команда Wrangler используется для развертывания вашего Worker. Ваша команда развертывания по умолчанию будет npx wrangler deploy но вы можете настроить эту команду. Workers Builds будет использовать версию Wrangler, указанную в вашем package.json. |
| Команда развертывания для непроизводственной ветки | Укажите команду, которая будет выполняться при запуске сборка для коммита в непродакшен-ветке. По умолчанию это будет npx wrangler versions upload но вы можете настроить эту команду. Workers Builds будет использовать версию Wrangler, указанную в вашем package.json. |
| Корневой каталог (Необязательно) | Укажите путь к проекту. Корневой каталог определяет, где будет выполняться команда сборки, и может быть полезен в монорепозитории чтобы выделить конкретный проект в репозитории для сборок. |
| API-токен (Необязательно) | API-токен используется для аутентификации запроса на сборку и авторизации загрузки и развёртывания вашего Worker в Cloudflare. По умолчанию при использовании Workers Builds Cloudflare автоматически создаёт API-токен для вашего аккаунта и продолжает использовать этот токен для всех последующих сборок. Кроме того, вы можете создайте собственный API-токен, либо выберите тот, которым вы уже владеете. |
| Переменные и секреты сборки (Необязательно) | Добавьте переменные окружения и секреты, доступные только на этапе сборки. Переменные сборки недоступны во время выполнения. Если нужны переменные времени выполнения, настройте их в Настройки > Переменные и секреты |
Команда развертывания
Команду деплоя можно выполнить с помощью любого удобного пакетного менеджера.
Если вы добавили команду развертывания Wrangler в качестве скрипта в package.json, тогда вы можете запустить его, указав в качестве команды развёртывания. Например, npm run deploy.
Примеры других команд развёртывания, которые можно задать:
| Пример команды | Описание |
|---|---|
npx wrangler deploy --assets ./public/ |
Разверните ваш Worker вместе со статическими ресурсами из указанного каталога. Также можно использовать привязка assets. |
npx wrangler deploy --env staging |
Если у вас есть Окружение Wrangler Worker, вам следует задать команду развёртывания с флагом окружения. Подробнее см. Дополнительные сценарии настройки. |
npx wrangler deploy --containers-rollout=immediate |
Containers режим развертывания (rollout) для этого деплоя. Подробнее см. в Развёртывания. |
npx wrangler deploy --containers-rollout=none |
Развернуть только Worker. Пропустить сборку/отправку образа контейнера и развертывание экземпляров. |
Команда развертывания для непроизводственной ветки
Команда развёртывания для ветки, отличной от production, применяется только в том случае, если у вас включена функция сборки непродакшен-веток.
По умолчанию: npx wrangler versions upload, создавая URL предпросмотра. Как и команды build и deploy, её можно настроить на выполнение произвольной команды.
Примеры других команд развёртывания для непроизводственных веток, которые можно задать:
| Пример команды | Описание |
|---|---|
yarn exec wrangler versions upload |
Можно настроить менеджер пакетов, используемый для запуска Wrangler. |
npx wrangler versions upload --env staging |
Если у вас есть Окружение Wrangler Worker, вам следует задать команду развёртывания для непродакшен-ветки с флагом окружения. Подробнее см. Дополнительные сценарии настройки. |
Автоматическая настройка для новых проектов
Если в репозитории нет файла конфигурации Wrangler, команда развёртывания (wrangler deploy) запустит автоматическая настройка проекта. Это определяет ваш фреймворк, создаёт необходимую конфигурацию и открывает pull request для проверки. После того как вы смержите PR, ваш проект будет настроен, и последующие сборки будут развёртываться в обычном режиме.
API-токен
API-токен в Workers Builds определяет доступ, предоставляемый Workers Builds для взаимодействия с ресурсами вашего аккаунта. В настоящее время поддерживаются только пользовательские токены, поддержка токенов уровня аккаунта появится позже.
Если вы выбираете Создать новый токен, будет автоматически создан новый API токен со следующими разрешениями:
- Аккаунт: Account Settings (read), Workers Scripts (edit), Workers KV Storage (edit), Workers R2 Storage (edit)
- Зона: Workers Routes (edit) for all zones on the account
- Пользователь: User Details (read), Memberships (read)
Разрешения этого API токена можно настроить, перейдя в My Profile > API-токены для пользовательских токенов.
Рекомендуется всегда использовать один и тот же API-токен для всех загрузок и развёртываний Worker, чтобы права доступа оставались неизменными.
Поддержка фреймворков
Static Assets и фреймворки теперь поддерживаются в Cloudflare Workers. Узнайте, как настроить проекты Workers и команды для каждого фреймворка, в руководствах по фреймворкам:
Переменные окружения
Для сборки можно указать пользовательские переменные окружения.
Чтобы добавить переменные окружения через панель управления:
- На панели управления Cloudflare перейдите к разделу Workers & Pages страницу.
- В Обзор, выберите ваш Worker.
- Выберите Настройки > Переменные окружения.
Чтобы добавить переменные окружения с помощью Wrangler, задайте текстовые и JSON значения через [vars] конфигурацию в файле Wrangler.
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "my-worker-dev",
"vars": {
"API_HOST": "example.com",
"API_ACCOUNT_ID": "example_user",
"SERVICE_X_DATA": {
"URL": "service-x-api.dev.example",
"MY_ID": 123
}
}
}"$schema" = "./node_modules/wrangler/config-schema.json"
name = "my-worker-dev"
[vars]
API_HOST = "example.com"
API_ACCOUNT_ID = "example_user"
[vars.SERVICE_X_DATA]
URL = "service-x-api.dev.example"
MY_ID = 123Переменные по умолчанию
По умолчанию внедряются следующие системные переменные окружения (их можно переопределить):
| Переменная окружения | Внедрённое значение | Пример варианта использования |
|---|---|---|
CI |
true |
Изменение поведения сборки при запуске в CI и локально |
WORKERS_CI |
1 |
Изменение поведения сборки при запуске в Workers Builds и локально |
WORKERS_CI_BUILD_UUID |
<build-uuid-of-current-build> |
Передача Build UUID в пользовательские workflows |
WORKERS_CI_COMMIT_SHA |
<sha1-hash-of-current-commit> |
Передача текущего ID коммита в систему отчетов об ошибках, например Sentry |
WORKERS_CI_BRANCH |
<branch-name-from-push-event |
Настройка сборки в зависимости от ветки, например отключение отладочного логирования на production |