---
metadata:
  - name: generator
    content: Diplodoc Platform v5.63.0
alternate:
  - https://vibe.sourcecraft.dev/portal/docs/en/sourcecraft/concepts/gh-actions.md
  - https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/gh-actions.md
  - href: https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/gh-actions.md
    type: text/markdown
    title: Markdown version
  - href: https://vibe.sourcecraft.dev/portal/docs/ru/llms.txt
    rel: describedby
title: Интеграция с GitHub Actions в SourceCraft
description: Как использовать GitHub Actions в CI/CD-процессах SourceCraft для автоматизации сборки и тестирования.
---
> **Documentation Index:** Fetch the complete configuration index at https://vibe.sourcecraft.dev/portal/docs/ru/llms.txt


# Интеграция с GitHub Actions в SourceCraft

<!-- source: ru/_includes/sourcecraft/ci-cd/gh-actions-intro.md -->
В [CI/CD](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md)-процессах SourceCraft поддерживается запуск [GitHub Actions](https://docs.github.com/en/actions).

_GitHub Actions_ — это встроенная в GitHub система CI/CD, позволяющая создавать, настраивать и выполнять рабочие процессы (workflows) для автоматизации сборки, тестирования, развертывания и других задач, связанных с жизненным циклом программного обеспечения, а также переиспользовать эти процессы в разных репозиториях.

Вы можете интегрировать в свои [рабочие процессы](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md#workflows) CI/CD SourceCraft собственные GitHub Actions или общедоступные из [GitHub Marketplace](https://github.com/marketplace?type=actions).

Чтобы использовать GitHub Actions в SourceCraft, вам не нужен аккаунт на GitHub и какие-либо действия в интерфейсе GitHub.
<!-- endsource: ru/_includes/sourcecraft/ci-cd/gh-actions-intro.md -->

<!-- source: ru/_includes/sourcecraft/ci-cd/gh-gl-cloud-workers.md -->
{% note warning %}

Запуск GitHub Actions и пайплайнов GitLab в CI/CD SourceCraft поддерживается только на [облачных воркерах](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/workers.md#cloud-workers).

{% endnote %}
<!-- endsource: ru/_includes/sourcecraft/ci-cd/gh-gl-cloud-workers.md -->

Для интеграции с GitHub Actions в SourceCraft используется специальный [кубик](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md#cubes) с параметрами `action` и (опционально) `with`:

<!-- source: ru/_includes/sourcecraft/ci-cd/gh-actions-template.md -->
```yaml
on:
  push:
    - workflows: [test-workflow]
      filter:
        branches: ["main"]

workflows:
  test-workflow:
    tasks:
      - name: demo-github-action-ci
        cubes:
          - name: run-github-action
            action: <название_GitHub_Action>@<версия>
            with:
              <параметр_GitHub_Action_1>: <значение_1>
              <параметр_GitHub_Action_2>: <значение_2>
              ...
```
<!-- endsource: ru/_includes/sourcecraft/ci-cd/gh-actions-template.md -->

<!-- source: ru/_includes/sourcecraft/ci-cd/gh-actions-example.md -->
В примере ниже представлен конфигурационный файл `.sourcecraft/ci.yaml`, в котором описаны следующие действия:

* Получение IAM-токена Yandex Cloud с помощью [сервисного подключения](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/service-connections.md).
* Установка в окружение [воркера](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/workers.md) утилиты [Docker Buildx](https://github.com/docker/buildx) с помощью GitHub Action [Docker Setup Buildx](https://github.com/marketplace/actions/docker-setup-buildx).
* Аутентификация в [Yandex Cloud Registry](https://yandex.cloud/ru/docs/cloud-registry/) с помощью GitHub Action [Docker Login](https://github.com/marketplace/actions/docker-login) и IAM-токена Yandex Cloud.
* Сборка Docker-образа из `Dockerfile`, размещенного в корне репозитория, и отправка образа в Cloud Registry с помощью GitHub Action [Build and push Docker images](https://github.com/marketplace/actions/build-and-push-docker-images).

```yaml
tokens:
  # Произвольное имя токена.
  <имя_токена>:
    # Имя сервисного подключения к Yandex Cloud.
    service_connection: <имя_сервисного_подключения>
    # Область запроса доступа:
    # org — все репозитории.
    # repo — конкретный репозиторий.
    # ref — ветка или тег.
    scope: repo

workflows:
  test-workflow:
    tasks:
      - name: test-gh-actions-task
        cubes:
          # Кубик обменивает токен SourceCraft на IAM-токен Yandex Cloud
          # и сохраняет его в переменную IAM_TOKEN в блоке outputs.
          - name: get-iam-token
            env:
              ID_TOKEN: ${{ tokens.<имя_токена>.id_token }}
              YC_SA_ID: ${{ tokens.<имя_токена>.service_account_id }}
            image: cr.yandex/sourcecraft/yc-iam:latest

          # Кубик устанавливает и настраивает утилиту Docker Buildx.
          - name: setup-buildx
            action: docker/setup-buildx-action@v3.11.1

          # Кубик аутентифицируется в Yandex Cloud Registry c 
          # помощью IAM-токена.
          - name: login
            action: docker/login-action@v3.5.0
            with:
              registry: cr.yandex/<идентификатор_реестра>
              username: iam
              # Подставьте в блок для получения значений outputs имя кубика с
              # IAM-токеном, например get-iam-token.
              password: ${{ cubes.<имя_кубика_с_IAM-токеном>.outputs.IAM_TOKEN }}

          # Кубик собирает Docker-образ из Dockerfile и отправляет его в реестр
          # Cloud Registry.
          - name: build-and-push
            action: docker/build-push-action@v6.18.0
            with:
              context: .
              file: Dockerfile
              platforms: linux/amd64
              tags: |
                cr.yandex/<идентификатор_реестра>/image-name:latest
              push: true

on:
  push: test-workflow
```
<!-- endsource: ru/_includes/sourcecraft/ci-cd/gh-actions-example.md -->

<!-- source: ru/_includes/sourcecraft/configuration-tip.md -->
{% note tip %}

Настройка и просмотр конфигураций репозитория доступны в интерфейсе SourceCraft в разделе ![image](../../_assets/console-icons/gear.svg) **Настройки репозитория** в секции ![image](../../_assets/console-icons/nut-hex.svg) **Конфигурации**. Подробнее в инструкции [Настроить конфигурации репозитория в виде кода](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/configuration-edit.md).

{% endnote %}
<!-- endsource: ru/_includes/sourcecraft/configuration-tip.md -->

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

* [Использовать GitHub Actions в CI/CD SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/gh-actions.md)
* [Настройка CI/CD для развертывания приложения в Yandex Serverless Containers с помощью GitHub Actions](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/tutorials/ci-cd-sourcecraft-github-actions.md)
* [Пайплайны GitLab в CI/CD SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/gl-pipelines.md)
* [Использовать пайплайны GitLab в CI/CD SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/gl-pipelines.md)
* [Непрерывная интеграция и непрерывное развертывание в SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md)
* [Сервисные подключения SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/service-connections.md)