www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

6 советов, которые необходимо знать перед внедрением конвейеров AzureDevOps

Дата публикации Oct 3, 2019

я использовалJenkinsинтенсивно, и я реализовал два основных проекта вAzureDevOpsэтот год:Terraformа такжеChef, Позвольте мне поделиться трюкамиAzureDevOps,

Один репозиторий, мультипроект

Вы должны добавить несколько (крошечных) проектов в одномrepositoryорганизовано с подпапками.

root
|
+- ProjectA
|
+- ProjectB
|
+- ProjectC

Поэтому вы добавляете / объявляете несколькоbuild definitions, Но если вы установите срабатывание для каждого коммита, это не будет круто! Каждая сборка выполняется, даже если в подпапке проекта нет изменений. Для интеллектуального триггера вы можете определить подпапку в вашемbuild definition:

trigger:
branches:
include:
- master
paths:
include:
- ProjectA

triggerзапускается только если коммит касается подпапки. Это базовая функция в платформах CI / CD, но она структурируется.

Стратегии очередей выпусков

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

Ваши старые выпуски в состоянии ожидания одобрения автоматически отменяются!

Создание команд AzureDevops (даже если у вас есть группы AAD)

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

Затем вы должны установитьApproval order«Любой пользователь». Или, что еще лучше, создайте встроенные команды, которые должны быть более устойчивыми к изменениям, если у вас много конвейеров.

Поделитесь своими сценариями с шаблонами шагов и заданий

Вы можете создатьstepилиjob templatesи позвони им в свойbuild definition, Например, сstep template:

# file templates/my-template.yml
parameters:
my_param: "default value"
steps:
- script: |
echo "${{parameters.my_param}}"
displayName: 'task! Hello world'

звонок от того жеrepository:

# file: azure-pipelines.yml
(...)
steps:
- template: templates/my-template.yml
parameters:
my_param: 'Hello world'

звонок от другогоrepository:

(...)
resources:
repositories:
- repository: mycommon
type: git
name: common-ci
steps:
- template: [email protected]
parameters:
my_param: 'Hello world'

больше деталей:https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops

Поделитесь своими сценариями с группой задач

И для вашегоrelease definitionВы можете использоватьtask group! Например, вы можете преобразовать существующий шаг в группу задач, как в следующем примере:

нажмите прямо наstep> Создатьtask group

Поделитесь своими сценариями с несколькими Checkoutrepositoriesв одной сборке / выпуске

Вы можете создатьrepositoryс вашими разделяемыми скриптами. И после вы можете проверить как общее, так и проектrepository! Вы можете использовать эту стратегию в своемbuildsа такжеreleases definitions,

  • вrelease definition, можете добавитьrepositoriesкакartifacts:
  • вbuild definition(Упс!), Дизайн / документация готова, но функция не выпущена:

Потребность в раздаче · Выпуск № 259 · Microsoft / Azure-Pipelines-Yaml

Каков статус дизайна Multicheckout? Это происходит случайно? Наша команда заблокирована тем, что ...

github.com

но это может выглядеть так:

trigger:
- master
pool:
vmImage: 'ubuntu-latest'
resources:
repositories:
- repository: myrepositoryid
type: git
name: common-ci
steps:
- checkout: self
- checkout: myrepositoryid
path: mysecondrepository-folder
- script: ls $(Build.SourcesDirectory)\mysecondrepository-folder
displayName: 'Run a one-line script'

Поддерживать связь

Я обновлю статью, когда выйдет «Multi Checkout»! И я буду рад прочитать ваши советы и опыт в комментариях.

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map