Примечание
Это действие GitHub пока не поддерживает проекты CircleCI, интегрированные с приложением CircleCI GitHub. Если URL-адрес вашего проекта CircleCI выглядит следующим образом: https://app.circleci.com/projects/organizations/circleci%
, вы интегрируетесь с приложением CircleCI GitHub, и это действие GitHub еще не поддерживается. Если у вас возникнут вопросы или отзывы, свяжитесь с [email protected]. Если URL-адрес вашего проекта CircleCI выглядит следующим образом: https://app.circleci.com/projects/project-dashboard/github/
, вы используете интеграцию приложения CircleCI OAuth, и это действие GitHub поддерживается.
Запускайте конвейеры CircleCI из любого события на GitHub с помощью GitHub Actions.
Создайте рабочий процесс действия GitHub для нужного конвейера CircleCI.
Сделайте это, добавив YAML-файл рабочего процесса (мы будем использовать main.yml
) в ./.github/workflows
.
В этом примере показан триггер release
. Попробуйте любое событие GitHub для запуска рабочих процессов: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows.
Выберите собственное имя и идентификатор для шага для дополнительных контекстных метаданных в вашем конвейере CircleCI.
on: выпуск: типы: [опубликовано] задания: триггер-circleci: запуск: ubuntu-последние шаги: - имя: <настраиваемое имя> идентификатор: <настраиваемый идентификатор> использует: CircleCI-Public/[email protected] env: CCI_TOKEN: ${{ secrets.CCI_TOKEN }}
Создайте зашифрованный секрет с именем CCI_TOKEN
, содержащий личный токен API, который будет использоваться для запуска конвейеров. Предполагается, что это пользователь машины.
Добавьте определения параметров конвейера в конфигурацию CircleCI. Эти данные будут введены действием GitHub при его запуске.
Добавьте следующее в начало вашего файла .circleci/config.yml
. Убедитесь, что вы указываете версию 2.1
версия: 2.1параметры: GHA_Actor: тип: строка по умолчанию: "" GHA_Action: тип: строка по умолчанию: "" GHA_Event: тип: строка по умолчанию: "" GHA_Meta: тип: строка по умолчанию: ""
Используйте данные параметров конвейера для условного запуска рабочих процессов.
См.: Примеры
Необязательные входные параметры, позволяющие указать дополнительные метаданные.
требуется: ложь
описание : необязательный дополнительный параметр метаданных. Будет доступен в конвейере CircleCI как GHA_Meta.
задания: триггер-круг: запуск: последние шаги Ubuntu: - имя: <настраиваемое имя> id: <настраиваемый идентификатор> использует: CircleCI-Public/[email protected] с: GHA_Meta: "<настраиваемые данные>" env: CCI_TOKEN: ${{ secrets.CCI_TOKEN }}
требуется: ложь
описание : пул проекта CircleCI целевого проекта (например: github/<org>/<repo>
). Если не указано, будет использоваться фрагмент текущего репозитория GitHub.
задания: триггер-круг: запуск: последние шаги Ubuntu: - name: <customize name> id: <customize id> использует: CircleCI-Public/[email protected] с: target-slug: "gh/<org>/<repo>" # Запустит конвейер для внешней среды проекта: CCI_TOKEN: ${{ secrets.CCI_TOKEN }}
Поле | Тип данных | Описание |
---|---|---|
id | строка (uuid) | Уникальный идентификатор конвейера. |
state | строка (перечисление: «создано» «ошибка» «ожидание установки» «установка» «ожидание») | Текущее состояние трубопровода. |
number | целое число (int64) | Номер трубопровода. |
created_at | строка (дата-время) | Дата и время создания конвейера. |
По умолчанию, когда репозиторий подключен к CircleCI, если рабочие процессы в конфигурации этого проекта не определяют какие-либо условия или фильтры, которые в противном случае препятствовали бы выполнению, рабочий процесс по умолчанию будет выполняться при каждом событии push
.
Это может означать, что можно случайно запустить задание дважды: один раз при событии push
от CircleCI, а также при других событиях, вызванных действием GitHub.
Если вы полагаетесь на действия GitHub для предоставления всех триггеров API, убедитесь, что каждый из рабочих процессов вашей конфигурации CircleCI содержит условие, ограничивающее его выполнение только триггером действия GitHub.
Пример
рабочие процессы: # Этот рабочий процесс настроен на условный запуск, # только через действие GitHub. # При отсутствии других нефильтрованных рабочих процессов обычные push-события будут игнорироваться. тест: когда: << конвейер.параметры.GHA_Action >> задания: - тест