Рабочие процессы SourceCraft можно сделать доступными для запуска всем участникам организации. Доступ к ним можно выдать даже при отсутствии ролей в репозитории, в котором размещен рабочий процесс, и доступа к его секретам.
Участник, запускающий такой общедоступный рабочий процесс, получает возможность передать в него параметры inputs, следить за прогрессом выполнения и получать данные на выходе, в том числе артефакты.
Например, эта функциональность может пригодиться для проверки заданий в тестовых репозиториях студентов. Также это полезно для предоставления пользователям доступа к части CI-процессов без назначения им дополнительных ролей.
Где параметр settings:shared: true — разрешение запускать рабочий процесс всем участникам организации.
Важно
Все общедоступные запуски рабочего процесса осуществляются от имени пользователя, который последним добавил изменения в файле .sourcecraft/ci.yaml в основной ветке.
Если файл .sourcecraft/ci.yaml в основной ветке был обновлен напрямую через git push origin main с использованием персонального токена (PAT) с ограниченным временем жизни, соответственно, рабочий процесс будет общедоступным только в течение этого времени жизни.
Запустить общедоступный рабочий процесс
Примечание
Эта часть инструкции предназначена для участников организации, запускающих общедоступный рабочий процесс.
Запустить общедоступный рабочий процесс можно изнутри другого рабочего процесса с помощью специального кубикаcr.yandex/sourcecraft/cubes/shared-workflows:latest или с помощью API.
Во входные параметры запуска передаются:
слаг репозитория, в котором находится рабочий процесс;
слаг организации;
название рабочего процесса;
(опционально) параметры inputs, например ссылка на клонирование репозитория, из которого происходит запуск;
(опционально) указание на результат выполнения — artifacts.
Важно
Чтобы получить артефакты из общедоступного рабочего процесса, передайте названия задания и кубика, а также локальный путь артефакта в переменные окружения кубика cr.yandex/sourcecraft/cubes/shared-workflows:latest или в отдельном вызове API.
Добавьте в ветку main репозитория файл .sourcecraft/ci.yaml с содержимым рабочего процесса, который будет запускать публичный рабочий процесс, например:
Запустить общедоступный рабочий процесс можно только в основной ветке репозитория и только с конфигурацией CI/CD из основной ветки. Передача в теле запроса параметров head и config_revision приведет к ошибке выполнения.
Сохраните значение слага запуска (slug), полученное в ответе.