Просто глядя на название, я чувствую, что под капотом творится много вещей. И это правда, это то, что мы должны знать, потому что это сделает нашу жизнь намного проще. Я имею в виду много!

Создание и публикация пакета NPM - стандартный метод



Это пакет NPM, который я написал для проверки подлинности URL-адресов и изображений на странице.

Обычно, когда я заканчиваю разработку и готов к релизу. Я передам его на GitHub, а затем опубликую в NPMJS, рискуя тем, что пакет может не работать или пропустить некоторые элементы.

Теперь с помощью методов разработки через тестирование, непрерывной интеграции и непрерывного развертывания. Мне не нужно беспокоиться о том, что мой код больше не будет работать. Все, что мне нужно сделать, это сделать фиксацию на Github. После этого обо всем позаботятся.

Разработка через тестирование

Я предполагаю, что вы, возможно, слышали об этом процессе разработки программного обеспечения. Короче говоря, этот тип разработки основан на повторении очень короткого цикла разработки: требования превращаются в очень конкретные тестовые примеры, затем программное обеспечение улучшается для прохождения новых тестов, только . Если вы хотите узнать больше о разработке через тестирование, прочтите Википедию.

Я не запускал свой пакет с помощью этого метода, но это шаги, с которых я должен начать. Я не буду вдаваться в подробности того, как начать и опубликовать совершенно новый проект. Если вы хотите увидеть полный код, посетите репозиторий urls-checker.

  1. Начать новый проект
npm init -y

2. Добавьте пакеты требований

npm install mocha chai --save-dev

3. Напишите несколько тестовых примеров и запустите тест.

И да, вы должны написать тестовый пример, как если бы ваш метод уже существует и полностью работает.

// test/urls.js
'use strict';
const { urlsChecker } = require('../index');
const expect = require('chai').expect;
describe('Urls Checker Test:', () => {
    it('Get URLs result', async () => {        
        let results = await urlsChecker('https://google.ca');               
        expect(results.ok.length).to.be.above(0);
    });
})

Конечно, он потерпит неудачу, если вы его запустите, и в этом суть.

mocha --timeout 10000 --exit

4. Напишите методы, которые помогут пройти тест.

Он слишком длинный и сложный, отошлите его в репозиторий: P

5. Добавить конфигурацию CI / CD (Travis)

Теперь это основная часть. Обычно после завершения проекта мы публикуем его в NPMJS. Отправить посылку очень просто.

npm login // Create an account if you don't have
npm publish

Однако с помощью CI / CD каждый раз, когда вы делаете коммит на GitHub, ваш код будет проверяться, и если он пройдет. Ваш пакет будет опубликован автоматически. Итак, прощаемся с npm publish;)

Непрерывная интеграция с Трэвисом

Есть много инструментов, которые могут помочь вам с CI / CD, такие как Jenkins, Travis CI, Bamboo, Gitlab CI… В этом посте я попробую Travis. Что нам нужно сделать, это учетная запись Github и учетная запись Travis. Фактически, вы войдете в Travis через свою учетную запись Github. Таким образом, все ваши общедоступные проекты будут перечислены на панели управления Travis.

Чтобы ваш проект мог воспользоваться преимуществами непрерывной интеграции от Travis, вам необходимо добавить для него файл конфигурации. Это проект NodeJS, версия Node - 8.

// .travis.yml
language: node_js
node_js:
 - '8'

После этого вы можете добавить значок статуса сборки в файл readme.md.

// Replace the username and project name with yours
[![Build Status](https://travis-ci.org/dalenguyen/urls-checker.svg?branch=master)](https://travis-ci.org/dalenguyen/urls-checker)

С этого момента каждый раз, когда вы нажимаете на Github. Трэвис запустит и протестирует ваш проект, поэтому убедитесь, что у вас есть готовые тестовые примеры, и добавьте тестовый скрипт в package.json.

// package.json
"scripts": {
    "test": "mocha --timeout 10000 --exit"
},

Непрерывное развертывание в NPMJS

Последний шаг - убедиться, что ваш пакет будет опубликован в NPMJS, если все будет принято. Для этого нам нужно отредактировать конфигурацию Трэвиса.

Вы можете сделать это, запустив travis cli:

travis setup npm

Или вручную добавьте его в файл .travis.yml.

// .travis.yml
...
deploy:
  provider: npm
  email: "YOUR_EMAIL_ADDRESS"
  api_key: "YOUR_AUTH_TOKEN"

Если у вас нет Travis Cli на вашем компьютере, пожалуйста, проверьте страницу с инструкциями по Travis. Вот как вы устанавливаете на MacOS.

brew install travis

Чтобы получить api_key, вам необходимо создать новый токен из вашей учетной записи:

https://www.npmjs.com/settings/your-username/tokens/

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

travis encrypt your-npm-token --add deploy.api_key

После этого мой .travis.yml обновляется

// .travis.yml
language: node_js
node_js:
- '8'
deploy:
  provider: npm
  email: [email protected]
  api_key:
    secure: BSjy5UrLZOgrTnaA...
  on:
    branch: master
    tags: true

Вы можете удалить tags: true, потому что он будет развернут в NPMJS только при фиксации с тегом.

git push --tags

Начать развертывание

С этого момента мой пакет в целости и сохранности и всегда актуален на Github и NPMJS. Надеюсь, эта статья окажется для вас полезной;)