← Cloudflare Workers / workers / ci-cd / external-cicd
GitHub Actions
Workers можно развёртывать с помощью GitHub Actions ↗. Вот как можно настроить workflow GitHub Actions.
1. Аутентификация
При локальном запуске Wrangler аутентификация в API Cloudflare выполняется через wrangler login команду, которая запускает интерактивный процесс аутентификации. Поскольку среды CI/CD неинтерактивны, Wrangler требует API-токен Cloudflare и ID аккаунта чтобы пройти аутентификацию в Cloudflare API.
Cloudflare account ID
Чтобы найти свой Cloudflare Account ID, см. Найдите ID аккаунта и зоны.
API-токен
Чтобы создать API-токен для аутентификации Wrangler в задании CI:
-
На панели управления Cloudflare перейдите к разделу Токены API аккаунта страницу.
Перейдите в Токены API аккаунта ↗ -
Выберите Create Token.
-
В разделе Политики разрешений, откройте Custom раскрывающемся списке и выберите Edit Cloudflare Workers.
-
Настроить имя токена.
-
Ограничьте область действия токена.
Вам нужно будет выбрать ресурсы аккаунта и зоны, к которым получит доступ созданный API токен. Рекомендуем ограничивать эти ресурсы максимально узко, чтобы снизить доступ токена. Например, если у вас есть доступ к трём разным аккаунтам Cloudflare, стоит ограничить созданный API токен только тем аккаунтом, в котором вы будете разворачивать Worker.
2. Настройка CI/CD
Способ запуска Wrangler в среде CI/CD зависит от конкретной настройки вашего проекта (используете ли вы GitHub Actions, Jenkins, GitLab или что-то совершенно иное).
Чтобы настроить CI/CD:
- Перейдите на платформу CI/CD и добавьте указанное ниже в качестве секретов:
CLOUDFLARE_ACCOUNT_ID: Устанавливается в Cloudflare account ID для аккаунта, в котором вы хотите развернуть свой Worker.CLOUDFLARE_API_TOKEN: Устанавливается в созданный вами API-токен Cloudflare.
- Создайте workflow, который будет отвечать за развёртывание Worker. Этот workflow должен запускаться
wrangler deploy. Ознакомьтесь с примером GitHub Actions ↗ workflow в следующем разделе.
GitHub Actions
Cloudflare предоставляет официальное действие ↗ для развёртывания Workers. См. следующий пример workflow, который развёртывает ваш Worker при пуше в main ветки.
name: Deploy Worker
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v6
- name: Build & Deploy Worker
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}