Travis-CI サーバー上の NodeJ でコンパイルされるため、クライアント側の JavaScript ライブラリに Travis-CI を使用するかどうかはわかりません。
クライアント側のライブラリに Travis-CI などのある種の継続的インテグレーションを使用するのにこれが良いアプローチかどうか知りたいですか?
Travis-CI サーバー上の NodeJ でコンパイルされるため、クライアント側の JavaScript ライブラリに Travis-CI を使用するかどうかはわかりません。
クライアント側のライブラリに Travis-CI などのある種の継続的インテグレーションを使用するのにこれが良いアプローチかどうか知りたいですか?
はい、もちろん、クライアント側ライブラリとの継続的な統合を使用する必要があります。
個人的には、Travis-CI に既にインストールされているPhantomJS (ヘッドレス Webkit ブラウザー)を使用しています。これは、NodeJs よりもクライアント側のものに適したオプションだと思います。
Gruntを使用すると、さらに使いやすくなります。必要なのは、単純な Gruntfile.js ファイル、ブラウザーで実行されるテスト (私はQUnitを使用)、および単純な .travis.yml だけです。
Gruntfile.js
:
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
qunit: {
files: ['test/index.html']
}
});
// Load plugin
grunt.loadNpmTasks('grunt-contrib-qunit');
// Task to run tests
grunt.registerTask('test', 'qunit');
};
.travis.yml
:
before_script:
- sudo npm install -g grunt
script: grunt test --verbose --force
私のプロジェクトの 1 つで実際に動作しているのを見ることができます ( source on GitHub )。
私は Odi からの回答から始めて、それを機能させるために gulp に移動しました。travis ファイルで node_js を言語として指定すると、travis が自動的に実行されます。
npm install
に続く
npm test
1 つ目は package.json ファイルで指定された devDependencies をインストールし、2 つ目は package.json から「test」という名前のスクリプトを実行します。以下に、travis が単一の qunit スイートを実行するためにレポの最上位に必要な 3 つのファイルを示します。
.travis.yml
language: node_js
node_js:
- "0.10"
gulpfile.js
var gulp = require('gulp'),
qunit = require('gulp-qunit');
gulp.task('default', function() {
return gulp.src('./tests/unit/unittests_nupic-js.html')
.pipe(qunit());
});
パッケージ.json
{
"name": "nupic-js",
"version": "0.0.1",
"description": "JavaScript port of NuPIC",
"license": "GPL-3.0",
"repository": "iandanforth/nupic-js",
"bugs": { "url" : "http://github.com/iandanforth/nupic-js/issues"
},
"author": {
"name": "Ian Danforth",
"email": "iandanforth@gmail.com"
},
"engines": {
"node": ">=0.10.0"
},
"scripts": {
"test": "gulp"
},
"keywords": [
"numenta",
"nupic",
"machine learning"
],
"devDependencies": {
"gulp-qunit": "~0.2.1",
"gulp-util": "~2.2.14",
"gulp": "~3.5.1"
}
}