/gitFlowDE

This repository is dedicated to the my article https://medium.com/@artemseleznev/data-engineer-data-scientist-git-flow-75cb5c603eb4

Primary LanguagePLSQL

Data Engineer templates 🚀

Здесь вы найдете набор шаблонов для проектов data engineer'a. Каждый проект содержит набор шаблонов:

  • project - шаблон базового проекта инженера
  • ad-hoc - расширяемый шаблон для срочных / временных задач
  • queryLib - шаблон (с pl\sql скриптами) для инженера sql
  • sparkTmp - шаблон для проекта PySpark

На основе данных шаблнов можно создать git template (git doc)


Проект содержит набор файлов для упрощения использования git (смотри Usage)

Ознакомиться со статьей о DE git flow


Содержание 📝


Использование 👷

[!] Проект используется в рамках git flow DE. Для упрощения работы со схемой git flow DE можно использовать следующие скрипты (на их основе разработать / доработать свой процесс)

createTemplate.sh

# создание / разворачивание проекта


bash createTemplate.sh PROJECT_TYPE -bb branchName

# PROJECT_TYPE - project type
# -bb - ключ для добавления базовых веток (git flow). Без веток -n
# branchName - имя ветки с который вы начнете данный проект (базовая ветка: master, dev & etc)

# доступные ветки "dev, feature, fix, adhoc, integration, release, held, controlTest"

changeAddOrigin.sh

# изменение или добавлене удаленного репозитория

bash changeAddOrigin.sh -a remote_name path

# -a - ключ действия (доступны -a - добавить / -c - изменить / -r - переименовать)
# remote_name - имя ориджина которое будет использоваться
# paht - путь до удаленного репозитория (пример ssh/https://some_path)

addBranch.sh

# добавить новую ветку и начать в ней работу

bash addBranch.sh branch task

# branch - имя ветки, которую вы хотите добавить
# task - наименование задачи для которой создается ветка

push.sh

# загрузка проекта на удаленный репозиторий

bash push.sh -type remote branch

# -type - указать тип загрузки изменени на удаленный репозиторий (доступные типы: -c - обычный тип загрузки в текущий ориджин и ветку / -s - установка ориджина и ветки куда будет совершена загрузка)
# remote - имя ориджина (если тип -s)
# branch - имя ветки (если тип -s)

pull.sh

# загрузка проекта из удаленного репозитория

bash pull.sh -r branch remote

# -r - тип пулл процесса (доступные: -r = rebase | -nr - без rebase)
# branch - установить ветку из которой будет загрузка
# remote - установка ориджин ( если ветка установлена, то обязательно установить ориджин)

mergeTo.sh

# мердж процесс ветки в основную ветку

bash mergeTo.sh branch

# branch - имя ветки куда будет слияние

Полезности ✨

[!] Полезные скрипты, которые делают git flow проще

createSSHKey.sh

# добавление ключа ssh для git (работаем с git без логина/пароля)

bash createSSHKey.sh

Contributing & Collaborating & CodeReviewing 🏷️

[!] Ссыли на правила взаимодействия по проекту.

Для крос-командного проекта необходимо вести следующие документы:

Для всех проектов код ревью:

Изменения ✅

  • Добавлены (но не тестированы) скрипты - автоматизаторы github
  • Добавлены шаблоны

To-Do 🚧

  • Тестирование и доработка скриптов
  • Внедрить шаблон spark - project
  • Внедрить шаблон отчетов (профилирование данных, тестирование кода, профилирование модели (машинного обучения))

Релизы 🔖

  • v.0.1 - релиз для статьи о DE git flow (сделан MVP процесса, готов к публикации)
  • v.0.1.1 - релиз с pyspark template (шаблоне переносится, не добавляется кодом)