Запустить команду сборки grunt на Travis CI
Я использую Travis CI для тестирования и сборки моего проекта, и в качестве части его я хочу, чтобы travis запускал grunt build
Я пробовал следующее, но не повезло.
-
script: "grunt build"
-
script: "./node_modules/grunt build"
-
script: "./node_modules/grunt/grunt build"
-
script: "./node_modules/grunt/grunt.js build"
Ответы
Ответ 1
Уверены ли вы установить grunt-cli
глобально на свой Travis node?
Конфигурация My Travis CI выглядит так:
language: node_js
node_js:
- "0.8"
before_install: npm install -g grunt-cli
install: npm install
before_script: grunt build
И мой пакет .json:
{
...
"scripts": {
"test": "grunt test"
},
...
}
Я объясню ход шагов, которые выполнит Тревис:
- Первый шаг, который нужно выполнить, -
before_install
. Мое единственное условие (кроме node.js) grunt-cli
, поэтому я использую этот шаг для его установки.
- Следующий шаг
install
, в моем случае это просто установит мои модули npm
- Затем выполняется
before script
, запуская grunt build
- Наконец, Travis будет искать скрипты в package.json, там я указал, что тестовый шаг должен выполняться
grunt test
Я хотел бы отметить, что это мое личное мнение о том, как настроить Travis. Я, конечно, не склоняюсь к тому, что вы должны использовать точно такой же подход.
Ответ 2
Вероятно, вы пропустили свой файл travis.yml:
before_script:
- npm install -g grunt-cli
Затем "grunt whatever" должно выполняться нормально (предполагая, что вам требуется grunt в ваших devDependencies в вашем пакете .json).
(см. http://www.mattgoldspink.co.uk/2013/02/10/using-travis-ci-with-grunt-0-4-x/)
Ответ 3
Убедитесь, что у вас есть grunt как часть ваших devDependencies. Вот пример файла: https://github.com/fraxedas/raspi-cloud/blob/master/package.json
"devDependencies": {
"grunt": "^0.4.5",
"grunt-contrib-jshint": "^0.11.2",
"grunt-contrib-watch": "^0.6.1"
}
Travis-ci установит grunt на этапе установки:
npm install
...
[email protected] node_modules/grunt
...
В моем случае я хотел запустить jshint с хрюканьем.
Вот мой файл travis.yml: https://github.com/fraxedas/raspi-cloud/blob/master/.travis.yml
Чтобы интегрировать grunt все, что мне было нужно:
before_script: grunt jshint
Вы можете изменить jshint другой командой.
Ответ 4
My.travis.yml выглядит следующим образом:
Он работает намного быстрее, чем npm
как NodeJS
менеджер пакетов, я использую Yarn
в этом примере. Он устанавливает Yarn
, grunt cli
, ruby
и sass
.
Надеюсь, это поможет.
language: node_js
node_js:
- "7.1.0"
before_install:
- npm install -g yarn
- yarn add global ruby
- gem install sass
install:
- yarn add global sass
- yarn add global grunt-cli
- yarn add yarn install
before_script: grunt