Справочник CI/CD
Конфигурация CI/CD задается для конкретного репозитория и хранится в файле .sourcecraft/ci.yaml.
Общий вид конфигурационного файла .sourcecraft/ci.yaml:
on:
pull_request:
- workflows: [<список_рабочих_процессов>]
filter:
source_branches: [<список_исходных_веток>]
target_branches: [<список_целевых_веток>]
paths: [<список_путей>]
push:
- workflows: [<список_рабочих_процессов>]
filter:
branches: [<список_веток>]
paths: [<список_путей>]
- workflows: [<список_рабочих_процессов>]
filter:
tags: [<список_тегов>]
schedule:
- workflows: [<список_рабочих_процессов>]
interval: <интервал_запуска_в_часах_или_минутах>
description: <произвольное_описание>
- workflows: [<список_рабочих_процессов>]
cron: "<cron-выражение>"
description: <произвольное_описание>
workflows:
<имя_рабочего_процесса>:
tasks:
- name: <имя_задания>
cubes:
- name: <имя_кубика>
image: <путь_к_Docker-образу>
script:
- <выполняемый_скрипт>
...
Конфигурация может включать в себя следующие элементы:
- События-триггеры (блок
on). - Рабочие процессы (блок
workflows). - Задания (блок
tasks). - Кубики (блок
cubes). - Сервисные подключения (блок
tokens). - Переменные окружения (блок
env).
Совет
Для файла .sourcecraft/ci.yaml поддерживаются вывод структуры файла, поиск деклараций и мест использования элементов. Подробнее см. на странице Навигация и поиск по коду в SourceCraft.
Вы можете использовать вложенную структуру для элементов конфигурации или разметить их в виде отдельных блоков.
Пример конфигурации СI/CD в виде отдельных блоков
on:
pull_request:
- workflows: my-test-workflow
filter:
source_branches: ["**", "!test**"]
target_branches: "main"
workflows:
my-test-workflow:
tasks:
- my-test-task
tasks:
- name: my-test-task
cubes:
- name: my-test-cube
uses: hello-cube
cubes:
- name: hello-cube
script:
- echo "Hello, world!"
В конфигурационном файле поддерживается использование секретов. Подробнее см. в разделе Использовать значение секрета в CI/CD.
Важно
Скоро перестанет поддерживаться хранение конфигурации CI/CD, правил ревью кода и политик веток в едином файле .src.ci.yaml в корне репозитория. Используйте отдельные файлы .sourcecraft/ci.yaml, .sourcecraft/review.yaml и .sourcecraft/branches.yaml.