Перейти к основному содержимому

SourceCraft

SourceCraft — это российская платформа для разработки и сопровождения программного обеспечения, которая объединяет инструменты для работы с исходным кодом, управления версиями, тестирования, сборки, развертывания и поддержки всего жизненного цикла программных продуктов. Она предоставляет систему управления Git-репозиториями с возможностью отслеживания задач и встроенным CI/CD-пайплайном.

На платформе SourceCraft доступен инструмент, с помощью которого вы можете автоматизировать
загрузку новых версий приложения из вашего репозитория в RuStore без необходимости каждый раз
вручную загружать APK-файлы в RuStore Консоль.

предупреждение

Первую версию приложения необходимо загрузить вручную через RuStore Консоль. Все последующие версии можно публиковать автоматически через SourceCraft.

Настройка интеграции

Для интеграции вам понадобится приватный ключ для доступа к RuStore API и
настроенный CI/CD-процесс в SourceCraft. Процесс состоит из трёх основных шагов.

Шаг 1: Получите приватный ключ для доступа к RuStore API

Чтобы SourceCraft мог взаимодействовать с RuStore от вашего имени,
необходимо сгенерировать ключевую пару.
Существующие ключи можно посмотреть в RuStore Консоль
вкладка Компания или РазработчикAPI RuStore.

предупреждение

Обязательно сохраните сгенерированный ключ и его ID. Приватный ключ будет показан только один раз.

Шаг 2: Создайте секрет в SourceCraft для взаимодействия с RuStore API

Для безопасного использования ключей в CI/CD-процессе, их необходимо сохранить в виде
секретных переменных (Secrets) в вашем проекте на платформе SourceCraft.

  1. Перейдите в настройки вашего проекта в SourceCraft.
  2. Откройте раздел Secrets.
  3. Создайте две новые переменные:
    • RUSTORE_KEY_ID — сюда вставьте ID ключа.
    • RUSTORE_PRIVATE_KEY — сюда вставьте приватный ключ.

Шаг 3: Настройте CI/CD-процесс

Процесс автоматизации описывается в файле .sourcecraft/ci.yaml в корне вашего репозитория. Для публикации используется готовый «кубик» mobile-deploy.

подсказка

Контроль метаданных и файлов релиза происходит через отдельную директорию. Правила формирования данной директории описаны по ссылке.

Добавьте в ваш ci.yaml следующий шаг:

.sourcecraft/ci.yaml

- name: publish-to-rustore
env:
# --- Обязательные параметры ---
STORE: "RU_STORE"
PACKAGE_NAME: com.yourcompany.yourapp # Замените на имя пакета вашего приложения
VERSION: 1.2.3 # Укажите версию приложения
API_KEY_ID: ${{ secrets.RUSTORE_KEY_ID }} # ID ключа из Secrets
API_KEY: ${{ secrets.RUSTORE_PRIVATE_KEY }} # Приватный ключ из Secrets

# --- Необязательные параметры ---
STATUS: DRAFT # Создать черновик (по умолчанию)
PUBLISH_TYPE: AUTO # Опубликовать автоматически после модерации (по умолчанию)
image: cr.yandex/sourcecraft-cube/mobile-deploy:preview
подсказка

Пример настроенного проекта представлен в официальном репозитории интеграции.

Обратите внимание
  • Название версии всегда определяется значением versionName в вашем APK-файле.
  • Отмена релиза. Если версия уже отправлена на модерацию, отменить её или остановить процентную раскатку через API невозможно. Это можно сделать только вручную в RuStore Консоли.

Возможные ошибки и их решение

ОшибкаРешение
App not published yet. Publish it from console.Вы пытаетесь автоматически опубликовать самую первую версию приложения. Первый релиз всегда нужно загружать и публиковать вручную через RuStore Консоль.
APK/AAB contains new sensitive permissionsВ новой версии приложения появились разрешения, требующие дополнительного декларирования. Такой релиз нужно опубликовать вручную через RuStore Консоль, заполнив информацию о новых разрешениях.
APK/AAB contains illegal permissionsПриложение запрашивает разрешения, которые запрещены правилами RuStore. Удалите запрещенные разрешения из кода приложения и повторите попытку.