diff --git a/.gitignore b/.gitignore index 6c18bef14..9fd581aa7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ + # Logs logs *.log @@ -16,6 +17,9 @@ coverage # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) .grunt +# nexe +nexe + # Compiled binary addons (http://nodejs.org/api/addons.html) build/Release @@ -28,4 +32,4 @@ node_modules .lock-wscript # IDE configuration -.idea \ No newline at end of file +.idea diff --git a/.travis.yml b/.travis.yml index 6a0ea1b34..da8f2bd17 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,41 @@ language: node_js + +env: + - CXX=g++-4.8 + node_js: - "stable" - - "6.0" - - "5.0" - - "4.0" -script: npm run coverage -after_script: "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js" + - "6" + - "5" + - "4" + - "4.4.4" # Stated specifically for packaging + - "4.0.0" # Used as lowest common dominator + +matrix: + include: + - node_js: "4.4.4" + os: osx + +script: + - npm run coverage + - npm run package + +after_script: + - "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js" + +cache: + directories: + - nexe/src + +addons: + artifacts: + paths: + - $( ls deepstream* ) + target_paths: + - $TRAVIS_REPO_SLUG + + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-4.8 \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 000000000..ee0583ca8 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,27 @@ +platform: + - x64 + +os: + - Visual Studio 2015 + +install: + - ps: Install-Product node 4.4.4 + - npm install + +test_script: + - node --version + - npm --version + - npm test + - npm run package + +deploy: + provider: S3 + access_key_id: + secure: cq7lgQP04314hwXwM2l0yiUKRcOkwHeKkDHFULrThxE= + secret_access_key: + secure: AMUWZVZ4o7lS6f5ogqxTTCqDUR/TYEmPaVXzb7yRRyFUTF/zQFnZHYk1G/j7ie8/ + bucket: ds-server-artifacts + folder: deepstreamIO\deepstream.io + artifact: nexe\deepstream-* + +build: off diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json new file mode 100644 index 000000000..ad3436bf7 --- /dev/null +++ b/npm-shrinkwrap.json @@ -0,0 +1,164 @@ +{ + "name": "deepstream.io", + "version": "1.0.0-beta.1", + "dependencies": { + "bufferutil": { + "version": "1.2.1", + "from": "bufferutil@latest", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-1.2.1.tgz", + "dependencies": { + "bindings": { + "version": "1.2.1", + "from": "bindings@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" + }, + "nan": { + "version": "2.3.3", + "from": "nan@>=2.0.5 <3.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.3.3.tgz" + } + } + }, + "charset": { + "version": "1.0.0", + "from": "charset@latest", + "resolved": "https://registry.npmjs.org/charset/-/charset-1.0.0.tgz" + }, + "colors": { + "version": "1.0.3", + "from": "colors@1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" + }, + "engine.io": { + "version": "1.6.9", + "from": "engine.io@1.6.9", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.6.9.tgz", + "dependencies": { + "base64id": { + "version": "0.1.0", + "from": "base64id@0.1.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz" + }, + "debug": { + "version": "2.2.0", + "from": "debug@2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "dependencies": { + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + } + } + }, + "ws": { + "version": "1.0.1", + "from": "ws@1.0.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.0.1.tgz", + "dependencies": { + "options": { + "version": "0.0.6", + "from": "options@>=0.0.5", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz" + }, + "ultron": { + "version": "1.0.2", + "from": "ultron@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz" + } + } + }, + "engine.io-parser": { + "version": "1.2.4", + "from": "engine.io-parser@1.2.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.4.tgz", + "dependencies": { + "after": { + "version": "0.8.1", + "from": "after@0.8.1", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz" + }, + "arraybuffer.slice": { + "version": "0.0.6", + "from": "arraybuffer.slice@0.0.6", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz" + }, + "base64-arraybuffer": { + "version": "0.1.2", + "from": "base64-arraybuffer@0.1.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz" + }, + "blob": { + "version": "0.0.4", + "from": "blob@0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz" + }, + "has-binary": { + "version": "0.1.6", + "from": "has-binary@0.1.6", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz", + "dependencies": { + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + } + } + }, + "utf8": { + "version": "2.1.0", + "from": "utf8@2.1.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.0.tgz" + } + } + }, + "accepts": { + "version": "1.1.4", + "from": "accepts@1.1.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz", + "dependencies": { + "mime-types": { + "version": "2.0.14", + "from": "mime-types@>=2.0.4 <2.1.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz", + "dependencies": { + "mime-db": { + "version": "1.12.0", + "from": "mime-db@>=1.12.0 <1.13.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz" + } + } + }, + "negotiator": { + "version": "0.6.1", + "from": "negotiator@0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" + } + } + } + } + }, + "minimist": { + "version": "1.2.0", + "from": "minimist@1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + }, + "utf-8-validate": { + "version": "1.2.1", + "from": "utf-8-validate@latest", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-1.2.1.tgz", + "dependencies": { + "bindings": { + "version": "1.2.1", + "from": "bindings@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" + }, + "nan": { + "version": "2.3.3", + "from": "nan@>=2.0.5 <3.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.3.3.tgz" + } + } + } + } +} diff --git a/package.js b/package.js new file mode 100644 index 000000000..2cada144b --- /dev/null +++ b/package.js @@ -0,0 +1,51 @@ +var nexe = require( 'nexe' ); +var os = require( 'os' ); + +var nodeVersion = '4.4.4'; +var commit = process.env.TRAVIS_COMMIT || process.env.APPVEYOR_REPO_COMMIT || 'local'; +var platform = os.platform(); +var packageVersion = require( './package.json' ).version; + +if( process.version.indexOf( nodeVersion ) === -1 ) { + console.log( 'We only compile nexe on Node version: ', nodeVersion ); + process.exit(); +} + +// Only include first seven for it to be unique +commit = commit.substr( 0, 7 ); + +var ending; +switch( platform ) { + case 'win32': + ending = 'exe'; + break; + case 'osx': + case 'darwin': + ending = 'osx'; + break; + case 'linux': + ending = 'sh'; + break; + default: + console.log( 'Unknown OS', platform ); + process.exit(); +} + +console.log( "Compiling: nexe/deepstream-" + packageVersion + '-' + commit + '.' + ending ); + +nexe.compile({ + "input": "start.js", + "output": "deepstream-" + packageVersion + '-' + commit + '.' + ending, + "nodeTempDir": "nexe/src", + "framework": "node", + "nodeVersion": nodeVersion, + "js-flags": "--use_strict", + nodeConfigureArgs: ['opt', 'val'], // for all your configure arg needs. + nodeMakeArgs: ["-j", "4"], // when you want to control the make process. + nodeVCBuildArgs: ["nosign", "x64"] // when you want to control the make process for windows. +}, function(err) { + if(err) { + return console.log(err); + process.exit( 1 ); + } +}); \ No newline at end of file diff --git a/package.json b/package.json index 87f89c722..f4783c183 100644 --- a/package.json +++ b/package.json @@ -12,17 +12,23 @@ "reporter": "node jasmine-runner", "test": "jasmine JASMINE_CONFIG_PATH=jasmine.json", "reporter": "node jasmine-runner", - "test-http-server": "node test/test-helper/start-test-server.js" + "test-http-server": "node test/test-helper/start-test-server.js", + "package": "node package.js" }, "repository": { "type": "git", "url": "https://github.com/deepstreamIO/deepstream.io.git" }, + "optionalDependencies": { + "charset": "latest", + "uws": "latest" + }, "dependencies": { "colors": "1.0.3", "engine.io": "1.6.8", "js-yaml": "^3.6.1", "lodash.merge": "^4.4.0", + "engine.io": "1.6.9", "minimist": "1.2.0" }, "devDependencies": { @@ -33,6 +39,7 @@ "istanbul": "^0.4.3", "jasmine": "^2.4.1", "jasmine-spec-reporter": "^2.4.0", + "nexe": "^1.1.2", "proxyquire": "1.7.9", "watch": "^0.18.0" },