Skip to content

Latest commit

 

History

History
156 lines (103 loc) · 3.75 KB

presentation.md

File metadata and controls

156 lines (103 loc) · 3.75 KB

👊 Overcommit - хуки хуками погоняют

Вольдэмар Дулецкий, ruby разработчик, компания Evrone

💀 Самое важное - самому не пропустить хук*

рассуждая про хуки

💪 Проект: публикация научных статей

Команда:

  • менеджер проекта

  • два руби разработчика

  • фронт-энд разработчик

Срок исполнения: два месяца 🔥


😱 Не пытайтесь сами гуглить

*название не очень оригинальное

Drawing


🔥 Что делает?

Позволяет просто управлять хуками git


⚡ Хуки

PreCommit:

  • rubocop

  • haml-lint

  • scss-lint

PrePush:

  • rspec

Полный список (около 70 возможных проверок только на PreCommit): https://github.com/brigade/overcommit

💾 Конфигурационный файл .overcommit.yml

PreCommit:
  RuboCop:
    enabled: true
    command: ['bin/bundle', 'exec', 'rubocop', '-R']
    on_warn: fail
  HamlLint:
    enabled: true
    command: ['bin/bundle', 'exec', 'haml-lint', 'app/views/']
    on_warn: fail
  ScssLint:
    enabled: true
    command: ['bin/bundle', 'exec', 'scss-lint']
    include: 'app/assets/**/*.scss'
    on_warn: fail

PrePush:
  RSpec:
    enabled: true

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

Установка:

Gemfile:

gem 'overcommit'

Выполняем в консоли:

bundle exec overcommit --install

Принудительно прогнать хуки:

bundle exec overcommit -R

🤘 Оффлайн

все хуки вызываются на машине разработчика

👀 Как это выглядит?


👮 Эффективно для микро-комманд до 5 человек


💰 PROFIT

  • не надо заморачиваться c настройкой CI

  • код не прошедший проверку не попадает в репозиторий

  • бесплатно

  • идеально подходит для самоконтроля


😈 Подводные камни

  • могут возикнуть проблемы с интеграцией в rubymine

  • синхронизировать настройки линтеров overcommit и сторонних CI

  • можно принудительно отключить код и отправить непроверенный код


🚀 В реальной жизни

  • overcommit: pre-commit hooks - линтеры
  • overcommit: pre-push hooks - тесты
  • vexor.io - тесты в облаке, гоняются на каждый коммит
  • codeclimate - еще раз гоняет линтеры на код, помещенный в коммит
  • автоматический деплой при слиянии в ветку develop через сервис cloud66

💎 koenig.rb

Калининградский руби-митап: http://koenig-rb.ru


👏 Контакты

Вольдэмар Дулецкий (Voldemar Duletskiy)

GitHub: github.com/r00takaspin