Администраторы Code Stream могут предоставить общий доступ к конвейерам, чтобы пользователи в организации имели возможность запускать их в любом другом проекте или добавлять в качестве вложенных задач в конвейер в другом проекте.

Для чего может быть нужен общий конвейер

При предоставлении общего доступа к конвейеру устраняется необходимость в создании одного и того же конвейера для разных проектов в организации. Если обновить общий конвейер, то все пользователи конвейера будут иметь одинаковое обновление.

Общий конвейер также можно использовать в Service Broker. Администратор Service Broker может добавить общий конвейер в качестве элемента каталога, чтобы пользователи могли его запрашивать и запускать в нескольких проектах.

Предоставлять общий доступ к конвейерам или останавливать их работу могут только администраторы Code Stream.

Предоставление общего доступа к конвейеру

Чтобы предоставить общий доступ к конвейеру, нажмите Конвейер и выберите нужный конвейер.

  1. Выберите Действия > Общий доступ в разных проектах
  2. Если конвейер деактивирован, нажмите Действия > Включить.
  3. (Необязательно) Чтобы сделать общий конвейер доступным в Service Broker, нажмите Действия > Опубликовать.

    После выпуска конвейера администратор Service Broker может добавить его в Service Broker. См. раздел Добавление конвейеров Code Stream в каталог Service Broker.

Запуск общего конвейера

Чтобы запустить общий конвейер, необходимо выбрать конвейер и проект.

Конвейер выполняется в контексте выбранного проекта, и общий доступ предоставляется только к модели конвейера. Любая инфраструктура, например конечные точки или переменные, используемые в конвейере, не является общедоступной. Если общий конвейер, в котором используются конечные точки или переменные, выполняется в другом проекте, то в нем должны быть доступны эти же конечные точки и переменные.

Предположим, например, что конвейер jenkinsPipeline использует projectA и содержит задачу с конечной точкой с именем jenkinsEndpoint.

Перед запуском общего конвейера убедитесь, что он включает в себя содержимое, необходимое для запуска этого конвейера в другом проекте.

Если вы предоставляете конвейеру jenkinsPipeline общий доступ и хотите запустить его в контексте projectB, в projectB должна быть конечная точка jenkinsEndpoint. Если jenkinsEndpoint отсутствует, то перед запуском общего конвейера создайте конечную точку в projectB.

Ниже описана процедура дублирования конечной точки в другом проекте. Выполните аналогичные действия для переменной.

  1. Щелкните Конечные точки. В конечной точке, которую необходимо дублировать, например в jenkinsEndpoint, нажмите Действия > Экспорт.
  2. Нажмите кнопку Импорт и выберите файл YAML для jenkinsEndpoint.
  3. Отредактируйте файл, чтобы изменить проект, например projectB в следующем примере кода YAML.
    ---
    project: projectB
    kind: ENDPOINT
    name: jenkinsEndpoint
    ...
  4. Щелкните Импортировать.

Чтобы запустить jenkinsPipeline в projectB, нажмите Запустить на карточке конвейера и выберите projectB в качестве проекта.

Примечание: Чтобы запустить общий конвейер в projectB, необходимо иметь роль Code Stream для администратора, разработчика или исполнителя. Если вы являетесь обозревателем или пользователем Code Stream, вы сможете запустить конвейер только после того, как администратор Code Stream сделает вас администратором проекта или его участником в projectB. Дополнительные сведения о ролях в Code Stream см. в Управление пользовательским доступом и утверждениями в службе Code Stream.

Добавление общего конвейера в другой конвейер

Использование общих конвейеров в качестве вложенных задач в другом конвейере позволяет расширить функциональные возможности конвейеров, используемых в рамках проекта. Общие конвейеры могут находиться в разных проектах или не вместе с конвейером, в котором они содержатся в качестве вложенных задач.

В следующем примере показан конвейер с именем master-shared-pipeline-demo, где имеются две вложенные задачи конвейера.

При создании конвейера с вложенными общими конвейерами выберите общий конвейер, а при наличии двух конвейеров с одинаковым именем используйте имя проекта, чтобы выбрать нужный конвейер.

Чтобы указать конвейер для Task0, выберите его в списке общих конвейеров. Каждое имя конвейера содержит имя проекта. Если у нескольких общих конвейеров одинаковое имя, можно использовать имя проекта, чтобы выбрать нужный конвейер.

Примечание: Чтобы запустить конвейер, содержащий вложенные конвейеры, он должен иметь доступ к конечным точкам или переменным, используемым во вложенных конвейерах. Если это невозможно, необходимо создать содержимое в проекте для конвейера.

Удаление или закрытие общего доступа к конвейеру

В случае добавления общего конвейера в качестве вложенной задачи на этот конвейер будет ссылаться конвейер, в который он вложен. Чтобы удалить конвейер или запретить общий доступ к нему, необходимо удалить его из всех конвейеров, которые на него ссылаются.

Например, если master-shared-pipeline-demo содержит Shared-Pipeline в качестве вложенной задачи, значит он ссылается на Shared-Pipeline. Удалить или закрыть общий доступ к Shared-Pipeline можно только после его удаления из master-shared-pipeline-demo.

Ниже описано, как проверить ссылки на целевой конвейер и удалить его из конвейера, который на него ссылается, прежде чем удалить целевой конвейер или прекратить общий доступ к нему.

  1. Проверьте наличие ссылок и обновите ссылки на конвейер в случае их обнаружения.
    1. а.Нажмите кнопку Конвейеры . В общем конвейере, который необходимо проверить, нажмите Действия > Просмотреть ссылки.
    2. б.Откройте конвейеры, которые ссылаются на общий конвейер, удалите вложенную задачу и сохраните конвейер.
  2. Удалите или закройте общий доступ к конвейеру.
    • В конвейере, который необходимо удалить, нажмите Действия > Удалить.
    • В конвейере, общий доступ к которому необходимо закрыть, нажмите Действия > Закрыть общий доступ.