Автор оригинала: Louie Kwan.
Целью для этого поста является обеспечение того, чтобы наши клиенты реализуют предварительную базовую установку CICD Controls в рамках их облачных условий.
Резюме нам нужны Grouprails, чтобы принести команду, чтобы быть продуктивной и государством, которая может хорошо работать с трубопроводами Azure DevOps.
Отель DEVOPS MUNAL должен определять командные соглашения на ранних этапах, прежде чем любая организация, начинающая свое путешествие CICD, пока не стало слишком поздно. Если нет, в некоторых моментах вы поймете, что почти у каждого участника есть своя и в основном очень рациональная интерпретация и вид на то, как следует устроить филиалы GIT, как должны быть структурированы папки, как следует назначать представления базы данных, а затем Это будет намного сложнее определить какие-либо эффективные трубопроводы DevOps.
Что будет покрыто в этом блоге.
- Microsoft «выпускает поток» как практичная стратегия ветвления Git
- Конвенция об именах репозитории
- Структура папки репозитория
- Конвенция об именах трубопровода
- Конвенция разветвления именования
Релиз потока
Поток выпуска — это модель ветвления и объединения Microsoft. Это то, как они упускают почти все их производственные развертывания и релизы. Они также используют Azure DevOps внутри, поэтому он хорошо его поддерживает.
Это то, как разработчики получают изменения в нашу кодовую базу — и в данный момент стратегия ветвления РФ выглядит как типичная модель развития на основе ствола. Но в отличие от некоторых других стратегий, основанных на багажнике, таких как поток GitHub, мы не развертываем эти изменения в производстве, чтобы проверить их перед объединением запроса на тягу, и не развернуто для производства, когда запрос на тягах объединен.
Релизы на вехах Sprint
В конце спринте мы создаем ветку развертывания от основной ветки: например, в конце выпуска 2021.09, мы создаем новые релизы отделений/R2021.09. Затем мы поставили филиал R2021.09 в производство.
Зачем выпускать поток?
- Один из одного трубопровода для управления всеми ветвями Git: Master, Hands и Releзов ветвей.
- Меньше кода слияние, а затем поток GIT
Мы можем строить трубопроводы Azure DEVOPS в качестве разветвленного в курсе, возможным минимальным усилием объединения.
- Функциональная ветвь: создает код и выпускает его в тестовую среду Только
- Выпуск ветви: Создает код, выпускает его к принятию и после одобрения до производства
- Запрос на тягу: непрерывная доставка не требуется, поэтому здание кода происходит
Образец трубопровода, который имеет два файла:
- Stage-Template.yaml: Абстрактный повторный этап, реализованный с использованием параметризованного шаблона
- Main.yaml: точка входа в трубопровод. Содержит триггеры, информацию об бассейне и оркестровке этапов
main.yaml trigger: - features/* - releases/* stages: - template: stage-template.yaml parameters: Name: Build Enabled: True - template: stage-template.yaml parameters: Name: Test Enabled: ${{ startsWith(variables['Build.SourceBranch'], 'refs/heads/features') }} - template: stage-template.yaml parameters: Name: Functional Test Enabled: ${{ startsWith(variables['Build.SourceBranch'], 'refs/heads/releases') }} - template: stage-template.yaml parameters: Name: Post Test Enabled: ${{ startsWith(variables['Build.SourceBranch'], 'refs/heads/releases') }} stage-template.yaml stages: - stage: ${{ parameters.Name }} displayName: '${{ parameters.Name }} Stage' condition: and(not(failed()), eq('${{ parameters.Enabled }}', true)) jobs: - job: ${{ parameters.Name }} displayName: '${{ parameters.Name }} Job' steps: - powershell: Write-Host "Job '${{ parameters.Name }}' is running. Parameter Enabled - '${{ parameters.Enabled }}' "
Образец конвенции о дании репозитории
Общие рекомендации именования для репозиториев Git:
- использовать строчные буквы
- использовать тире
Переполнение
Формат: строчные с дефисами
Примеры: AWS-Anbible # не AWS_Assable SQL-AWS-DB # не SQLAWSDB
Образец структуры папки репозитория
Любой проект должен иметь последовательную структуру папки в репозитории. Образец списка каталога верхнего уровня:
. ├── Создание # ЯМЛ Определения трубопроводов ├── документация документации документации (альтернативно DOC
) ├── Ресурсы # Файлы ресурсов, такие как шаблоны руки (в качестве альтернативы res
) ├── SRC # исходные файлы (в качестве альтернативы lib
или приложение
Несомненно ├── тесты # автоматизированные тесты (альтернативно спецификация
или тест
) ├── Сценарии # Инструменты и утилиты (альтернативно, Инструменты ») └── readme.md.
Образец конвейера по трубопроводу
Формат {refo name}: {Описание трубопровода}
Цель: чтобы сохранить трубопроводы в DEVOPS UI визуально ограничены для смежных репозиториев
Откуда: имя REPO — это имя хранилища, к которому принадлежит трубопроводный трубопровод Описание, описывает то, что делает трубопровод, например: CI Build или пример выпуска CD: GIT-APP-REPO: CI. -строить
Список литературы: GOC Grougrails, Azure Devops Release Flow, Alex Volok Consultancy
Оригинал: «https://www.codementor.io/@louiekwan/azure-devops-guardrails-naming-conventions-and-standards-1gn1v7bebh»