---
metadata:
  - name: generator
    content: Diplodoc Platform v5.57.3
alternate:
  - https://sourcecraft.dev/portal/docs/en/sourcecraft/ci-cd-ref/index.md
  - https://sourcecraft.dev/portal/docs/ru/sourcecraft/ci-cd-ref/index.md
  - href: https://sourcecraft.dev/portal/docs/ru/sourcecraft/ci-cd-ref/index.md
    type: text/markdown
    title: Markdown version
  - href: https://sourcecraft.dev/portal/docs/ru/llms.txt
    type: text/markdown
    title: llms.txt
title: Справочник CI/CD
description: 'Справочник конфигурации CI/CD SourceCraft: параметры рабочих процессов, заданий и кубиков, переменные окружения и переиспользование.'
---
> **Documentation Index:** Fetch the complete configuration index at https://sourcecraft.dev/portal/docs/ru/llms.txt


# Справочник CI/CD

<!-- source: ru/_includes/sourcecraft/ci-cd/config-file-description.md -->
Конфигурация CI/CD задается для конкретного репозитория и хранится в файле `.sourcecraft/ci.yaml`.

Общий вид конфигурационного файла `.sourcecraft/ci.yaml`:

```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:
              - <выполняемый_скрипт>
...
```

Конфигурация может включать в себя следующие элементы:
* [События-триггеры](https://sourcecraft.dev/portal/docs/ru/sourcecraft/ci-cd-ref/on.md) (блок `on`).
* [Рабочие процессы](https://sourcecraft.dev/portal/docs/ru/sourcecraft/ci-cd-ref/workflows.md) (блок `workflows`).
* [Задания](https://sourcecraft.dev/portal/docs/ru/sourcecraft/ci-cd-ref/tasks.md) (блок `tasks`).
* [Кубики](https://sourcecraft.dev/portal/docs/ru/sourcecraft/ci-cd-ref/cubes.md) (блок `cubes`).
* [Сервисные подключения](https://sourcecraft.dev/portal/docs/ru/sourcecraft/ci-cd-ref/tokens.md) (блок `tokens`).
* [Переменные окружения](https://sourcecraft.dev/portal/docs/ru/sourcecraft/ci-cd-ref/env.md) (блок `env`).

{% note tip %}

Для файла `.sourcecraft/ci.yaml` поддерживаются вывод структуры файла, поиск деклараций и мест использования элементов. Подробнее на странице [Навигация и поиск по коду в SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/code-navigation.md).

{% endnote %}

Вы можете использовать вложенную структуру для элементов конфигурации или разметить их в виде отдельных блоков.

{% cut "Пример конфигурации CI/CD в виде отдельных блоков" %}

```yaml
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!"
```

{% endcut %}

В конфигурационном файле поддерживается использование [секретов](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#secrets). Подробнее в разделе [Использовать значение секрета в CI/CD](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/secrets.md#use-secret-in-ci-cd).
<!-- endsource: ru/_includes/sourcecraft/ci-cd/config-file-description.md -->

#### Полезные ссылки {#see-also}

* [Шаблоны репозиториев](https://sourcecraft.dev/sourcecraft/repos)
* [Непрерывная интеграция и непрерывное развертывание в SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md)
* [Настроить CI/CD в репозитории SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/ci-cd.md)
* [Настройка CI/CD с Yandex Cloud Functions](https://sourcecraft.dev/portal/docs/ru/sourcecraft/tutorials/ci-cd-sourcecraft-functions.md)
* [Переиспользование параметров рабочих процессов и кубиков в CI/CD SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/ci-cd-ref/reuse.md)
* [Предопределенные переменные окружения](https://sourcecraft.dev/portal/docs/ru/sourcecraft/ci-cd-ref/predefined-variables.md)
* [Передача переменных окружения от одного кубика к другому в CI/CD SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/ci-cd-ref/env-vars-between-cubes.md)
* [Передача данных между заданиями CI/CD SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/ci-cd-ref/data-between-tasks.md)
* [Метки пользовательских (self-hosted) воркеров в SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/ci-cd-ref/self-hosted-tags.md)
