Как разработчики, мы должны стремиться автоматизировать как можно больше. Установка значений SemVer — это, безусловно, то, что мы должны сделать. Одна из причин — уменьшить объем памяти для выполнения обычных задач, другая — удалить эмоции из управления версиями. Посмотрите это видео по другим интересным причинам. Это довольно просто настроить.

Сначала давайте установим его глобально.

$ npm install -g semantic-release-cli

Теперь, когда он установлен, мы можем запустить небольшой симпатичный мастер для его настройки. Убедитесь, что вы находитесь в папке вашего модуля:

$ semantic-release-cli setup

Есть несколько подсказок:

  • Независимо от того, является ли ваш репозиторий GitHub общедоступным или частным.
  • Какой реестр NPM вы хотите использовать (по умолчанию: http://ift.tt/1bx8DsD)
  • Ваше имя пользователя NPM (если пароли ранее не были сохранены в связке ключей)
  • Ваш адрес электронной почты NPM
  • Ваш пароль NPM
  • Ваше имя пользователя на GitHub
  • Ваш пароль GitHub (если пароли ранее не были сохранены в связке ключей)
  • Какую систему непрерывной интеграции вы хотите использовать. (Варианты: Travis CI/Pro/Enterprise или другое)
  • Хотите ли вы протестировать одну версию node.js (например, 0.12) или несколько версий node.js (например, 0.10, 0.12 и т. д.)

Введите свою информацию, большинство из них по умолчанию будут правильными, просто убедитесь, что для вопроса CI выбран Travis-CI, а для версии узла выберите один узел.

Посмотрим, что произошло! Глядя на package.json мы видим новый скрипт semantic-release.

"semantic-release": "semantic-release pre && npm publish && semantic-release post"

Также обратите внимание, что раздел version файла package.json исчез. Travis-CI справится с этим сейчас, однако, чтобы подавить предупреждающее сообщение, когда мы выпустим пакет npm, давайте добавим его обратно как:

"version": "0.0.0-semantically-released"

Он также обновляет URL-адрес до https и добавляет semantic-release к зависимостям dev. Давайте немного настроим travis.yml, добавив наш тестовый скрипт в цепочку между before: и after: и добавим:

Script:
        - npm run test

Это обеспечит выполнение наших тестов, когда наш CI попытается их опубликовать.

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

Быть хорошим приверженцем

Давайте установим commitize, чтобы наши сообщения о коммитах были согласованными, чтобы помочь нашей системе управления версиями быть еще более эмоционально независимой.

В вашем терминале запустите:

$ npm i -D commitizen

Затем нам нужно сообщить ему, какому стандарту следовать для наших сообщений. Я использую довольно стандартный журнал изменений, используемый командой AngularJS, который называется… обычный журнал изменений!

Вы можете прочитать больше об этом здесь".

Чтобы установить его, просто введите:

$ npm i -D cz-conventional-changelog

Если вы достаточно уверены в них, вы можете установить их с параметром -g вместо -D. Если вы это сделаете, потребуется немного больше настроек. Перейдите здесь для получения дополнительной информации.

Это добавляет bin к модулям узлов, которые мы можем использовать в наших сценариях npm, называемых git-cz. Вы можете просто запустить следующее вместо git commit:

$ git cz

Вы можете использовать все параметры git commit с git cz, например:
git cz -a.

Однако мы собираемся настроить скрипт в нашем package.json, чтобы сделать все немного чище и немного более очевидным. Просто добавьте новый скрипт со следующим:

"commit": "git-cz"

Затем нам нужно сообщить ему, чтобы он использовал наш cz-conventional-changelog, в разделе конфигурации (создайте его, если у вас его нет) добавьте:

"config": {
    "commitizen": {
        "path": "node_modules/cz-conventional-changelog"
    }
  },

Давайте инсценируем эти изменения.

$ git status
$ git add -A
$ git status

Прежде чем мы запустим наш новый изящный скрипт, зайдите в свой репозиторий на github и создайте задачу. Для этого давайте сделаем что-то вроде «стандартизовать сообщения фиксации». Это, вероятно, ваша первая проблема, однако, если это не так, обратите внимание на число и используйте его для последней подсказки.

Теперь, когда все настроено, мы можем запустить (по последнему приглашению put закрывается # 1):

$ npm run commit

Автоматический выпуск с помощью Travis-CI

$ git status
$ git push

Посмотрите на репо и обратите внимание на закрытую проблему. Зайти на http://ift.tt/2cmaXK5 заметили проблему? Он застрял на этапе тестирования. Это потому, что у нас есть -w в нашей тестовой команде, поэтому она никогда не закроется. Чтобы исправить это, мы собираемся добавить скрипт в наш package.json:

“test:single”: “mocha src/index.test.js”

Нам также нужно отредактировать .travis.yml и изменить наш вызов запуска npm:

- npm run test:single

Вернитесь на travis-ci.org и отмените сборку.

Давайте попробуем это снова в вашей консоли:

$ git status
$ git add .
$ npm run commit

Теперь посмотрите travis-ci, обратите внимание на изменение номера версии. Посмотрите на выпуск github, посмотрите на npm, посмотрите, как изменение версии распространилось на несколько дистрибутивов. Теперь готовим на газу!

Далее… Автоматизация тестирования и покрытия кода!

Ключ:

= Time Saving Idea

= Pro Tip

= Note

= Alert

= Code Update

= A Closer Look

Первоначально опубликовано на Wordpress