Skip to content

Commit

Permalink
Merge branch 'build-config'
Browse files Browse the repository at this point in the history
Cherry picked based on the previous work on the packages branch
  • Loading branch information
bastimeyer committed Oct 15, 2016
2 parents c49e27a + ef0d145 commit e700650
Show file tree
Hide file tree
Showing 20 changed files with 403 additions and 129 deletions.
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ nbproject
/bower_components/

# builds
/build/*
!/build/tasks
!/build/resources
/build/cache/
/build/releases/
/build/package/
/build/tmp/
/dist/
26 changes: 11 additions & 15 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,33 +28,29 @@ install:

script:
# test and build
- "grunt build:prod"

before_deploy:
# travis "ubuntu trusty" workaround for wine
# wine is only needed for compiling the application (nw-builder)
- "sudo dpkg --add-architecture i386"
- "sudo apt-get update -qq"
- "sudo apt-get install -y wine > /dev/null"
# compile the application and package it
# do everything the "dist" grunt task does, but don't build twice
- "grunt clean:dist compile:all compress checksum:all"
- grunt build:prod
# compile and package
- if [ -n "${TRAVIS_TAG}" ]; then build/travis/package.sh; fi

deploy:
- provider: releases
api_key:
secure: "E4l/St08epvsX1NWYN3DI8dyHNus8kV8jqgu6/qK1QMqcORVeAl8Mto84QKGtOujDIo2nEHyxcPn+adbzsuYjKCNinFoc4+UWnvpwQtkHEC7dvZC54fpK86oSQfO0eHrnyjh6KCFf6cYqO2ClEcuFvKe/mTC2Z37xhs59mDF/ME+bA9MoccB13nfVA1aOHOx5QIAC56y6ZQoN0+w0sK9oZIEV3K+L3B7pNuhiSJ97IbPEy5kQMGxRcOazKlx7tkNzzWGBR3b1uwUK8UPBGH1fE66/ZGUxVGY3dHUlec2ZmuOPHMktQUgIiCxUod7D01fRgxjmrJizVNi2X/OQkloOMjb9ZuzAJg2NkEyAVlJ0dcg19j0aG7o0mzZl5UDSV6JhXe4xvaQQ+VBBR6GRs9FZ94YL+BrAAJB+er6c/H5zjK4AMlOhhc7zYJIMNQyDhU5CwkXRpsdGptgtT8Tzpxwpn0TsC4+tqIb5zpFsqKsKXgkwBHoVniPNqeYdl3fmFWGqCtWnpKwBPTly3DZjFMQcBspy48byFadASbCfVG50mUi/Mtv/tQ51suG8B+G3GDvL4MZmAdPyhcgo29tLEiYEqCmoW2P/HyyDgwZ0x0zuBBDcuvS6p3BFwCjxSA3Jl+rLR50A7rgCXB2p9uFLZpOGRQ3se8tOEUqNuEy77fwXwk="
file: "dist/*"
api_key: "${RELEASES_API_KEY}"
file: dist/*{.tar.gz,.zip,-checksums.txt}
file_glob: true
skip_cleanup: true
on:
tags: true
- provider: script
script: node build/travis/update_release.js
skip_cleanup: true
on:
tags: true

notifications:
email: false
webhooks:
urls:
- secure: "O3IQ/tbaIl7o2wdKjEBTuTZK8qYUQ+slscmV4ZQGeWWuwyEw6CoMEsspN/K4mFzhq7yupyBzeqpWydh5ekTjAqRFI8aJXOq7C1d1kahQskQ8cikqtFqr+cbwH9MLNjE6vZxQLDWHb97L3aQVau7JmwQ+HvvhQVmXcvCOvupA5WAOfBmHWIHpwuUSkPy77TOiK/4fBUPGOA4k3ChA2Z6bgCojw2SLqvIY6SyWHYm48xyNVeWEulZzaRYkzvbCz6dUH+Py4P5P6phrTw/o6xZ3x0gYl8bNs/yKarUc1k1S8ZUAqlzXcsbQaWnV/efe2O7TeV7N957VqzL1/Xk8zTIdq/LW4F1fBESM6u7i/ELLVNjecsGYPSGq4uWATojdOz/96Pne7NHkTiJaG1+I2pJasURScUkGxGwfJcgUcpF0Um3ed5kWJmPnC1aYolle7QseutyvllpJ83pCUdKaxrGPxu5nJEOzYoFT6iiLdJGC6t2CTNguOFoXUxwFkpEet/ORfmn0/o0xzC91u3wqJPaFKNI55086sL/TfzdW3HFuBgboL3fvNc5VkhPEX0LTvwH+Qx3QBBefUc3GT1GL3+rFH27kxnpU/qMWnMggvJQILdFpKjrTs8/AHobORMJ+S/ypzsyMQZO3O50qK035FJSbTk2q96EOm+SenLskUo11pEo="
- "${WEBHOOK_GITTER}"
on_success: change
on_failure: always
on_start: never
23 changes: 20 additions & 3 deletions Gruntfile.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
var PATH = require( "path" );
var r = require( "path" ).resolve;


module.exports = function( grunt ) {
"use strict";
Expand All @@ -9,8 +10,24 @@ module.exports = function( grunt ) {
// load task configs
require( "load-grunt-config" )( grunt, {
// load config files and avoid file name collisions
overridePath: PATH.join( process.cwd(), "build", "tasks", "configs" ),
configPath : PATH.join( process.cwd(), "src", "config" ),
overridePath: r( "build", "tasks", "configs" ),
configPath : r( "src", "config" ),

data: {
dir: {
root: r( "." ),
cache: r( "build", "cache" ),
package: r( "build", "package" ),
releases: r( "build", "releases" ),
resources: r( "build", "resources" ),
tmp: r( "build", "tmp" ),
tmp_dev: r( "build", "tmp", "dev" ),
tmp_prod: r( "build", "tmp", "prod" ),
tmp_test: r( "build", "tmp", "test" ),
travis: r( "build", "travis" ),
dist: r( "dist" )
}
},

// automatically initialize and load modules on demand
init : true,
Expand Down
23 changes: 1 addition & 22 deletions build/tasks/configs/checksum.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,6 @@ module.exports = {
options: {
algorithm: "sha256",
encoding: "hex",
dest: "dist/<%= package.name %>-v<%= package.version %>-checksums.txt"
},

win32: {
src: "<%= grunt.config.get('compress.win32.options.archive') %>"
},
win64: {
src: "<%= grunt.config.get('compress.win64.options.archive') %>"
},

osx32: {
src: "<%= grunt.config.get('compress.osx32.options.archive') %>"
},
osx64: {
src: "<%= grunt.config.get('compress.osx64.options.archive') %>"
},

linux32: {
src: "<%= grunt.config.get('compress.linux32.options.archive') %>"
},
linux64: {
src: "<%= grunt.config.get('compress.linux64.options.archive') %>"
dest: "<%= dir.dist %>/<%= package.name %>-v<%= package.version %>-checksums.txt"
}
};
59 changes: 44 additions & 15 deletions build/tasks/configs/clean.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,46 @@
module.exports = {
options : { force: true },
dist : [ "dist/**", "!dist" ],
tmp : [ "build/tmp/**", "!build/tmp", "!build/tmp/{dev,prod,test}" ],
tmp_dev : [ "build/tmp/dev/**", "!build/tmp/dev" ],
tmp_prod : [ "build/tmp/prod/**", "!build/tmp/prod" ],
tmp_test : [ "build/tmp/test/**", "!build/tmp/test" ],
cache : [ "build/cache/**", "!build/cache" ],
releases : [ "build/releases/**", "!build/releases" ],
release_win32 : [ "build/releases/<%= package.name %>/win32/**" ],
release_win64 : [ "build/releases/<%= package.name %>/win64/**" ],
release_osx32 : [ "build/releases/<%= package.name %>/osx32/**" ],
release_osx64 : [ "build/releases/<%= package.name %>/osx64/**" ],
release_linux32 : [ "build/releases/<%= package.name %>/linux32/**" ],
release_linux64 : [ "build/releases/<%= package.name %>/linux64/**" ],
package_chocolatey: [ "build/package/chocolatey/**" ]
options: { force: true },

dist: [
"<%= dir.dist %>/**",
"!<%= dir.dist %>"
],

tmp: [
"<%= dir.tmp %>/**",
"!<%= dir.tmp %>",
"!<%= dir.tmp_dev %>",
"!<%= dir.tmp_prod %>",
"!<%= dir.tmp_test %>"
],
tmp_dev: [
"<%= dir.tmp_dev %>/**",
"!<%= dir.tmp_dev %>"
],
tmp_prod: [
"<%= dir.tmp_prod %>/**",
"!<%= dir.tmp_prod %>"
],
tmp_test: [
"<%= dir.tmp_test %>/**",
"!<%= dir.tmp_test %>"
],

cache: [
"<%= dir.cache %>/**",
"!<%= dir.cache %>"
],

releases: [
"<%= dir.releases %>/**",
"!<%= dir.releases %>"
],
release_win32: [ "<%= dir.releases %>/<%= package.name %>/win32/**" ],
release_win64: [ "<%= dir.releases %>/<%= package.name %>/win64/**" ],
release_osx32: [ "<%= dir.releases %>/<%= package.name %>/osx32/**" ],
release_osx64: [ "<%= dir.releases %>/<%= package.name %>/osx64/**" ],
release_linux32: [ "<%= dir.releases %>/<%= package.name %>/linux32/**" ],
release_linux64: [ "<%= dir.releases %>/<%= package.name %>/linux64/**" ],

package_chocolatey: [ "<%= dir.package %>/chocolatey/**" ]
};
28 changes: 14 additions & 14 deletions build/tasks/configs/compress.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@ module.exports = {
options: {
mode : "zip",
level : 9,
archive: "dist/<%= package.name %>-v<%= package.version %>-win32.zip"
archive: "<%= dir.dist %>/<%= package.name %>-v<%= package.version %>-win32.zip"
},
expand : true,
cwd : "build/releases/<%= package.name %>/win32",
cwd : "<%= dir.releases %>/<%= package.name %>/win32",
src : [ "**" ],
dest : "<%= package.name %>"
},
win64: {
options: {
mode : "zip",
level : 9,
archive: "dist/<%= package.name %>-v<%= package.version %>-win64.zip"
archive: "<%= dir.dist %>/<%= package.name %>-v<%= package.version %>-win64.zip"
},
expand : true,
cwd : "build/releases/<%= package.name %>/win64",
cwd : "<%= dir.releases %>/<%= package.name %>/win64",
src : [ "**" ],
dest : "<%= package.name %>"
},
Expand All @@ -26,44 +26,44 @@ module.exports = {
options: {
mode : "tgz",
level : 9,
archive: "dist/<%= package.name %>-v<%= package.version %>-osx32.tar.gz"
archive: "<%= dir.dist %>/<%= package.name %>-v<%= package.version %>-osx32.tar.gz"
},
expand : true,
cwd : "build/releases/<%= package.name %>/osx32/<%= package.name %>.app/",
cwd : "<%= dir.releases %>/<%= package.name %>/osx32/<%= package.name %>.app/",
src : [ "**" ],
dest : "<%= grunt.config('main.display-name') %>.app/"
dest : "<%= main['display-name'] %>.app/"
},
osx64: {
options: {
mode : "tgz",
level : 9,
archive: "dist/<%= package.name %>-v<%= package.version %>-osx64.tar.gz"
archive: "<%= dir.dist %>/<%= package.name %>-v<%= package.version %>-osx64.tar.gz"
},
expand : true,
cwd : "build/releases/<%= package.name %>/osx64/<%= package.name %>.app/",
cwd : "<%= dir.releases %>/<%= package.name %>/osx64/<%= package.name %>.app/",
src : [ "**" ],
dest : "<%= grunt.config('main.display-name') %>.app/"
dest : "<%= main['display-name'] %>.app/"
},

linux32: {
options: {
mode : "tgz",
level : 9,
archive: "dist/<%= package.name %>-v<%= package.version %>-linux32.tar.gz"
archive: "<%= dir.dist %>/<%= package.name %>-v<%= package.version %>-linux32.tar.gz"
},
expand : true,
cwd : "build/releases/<%= package.name %>/linux32",
cwd : "<%= dir.releases %>/<%= package.name %>/linux32",
src : [ "**" ],
dest : "<%= package.name %>"
},
linux64: {
options: {
mode : "tgz",
level : 9,
archive: "dist/<%= package.name %>-v<%= package.version %>-linux64.tar.gz"
archive: "<%= dir.dist %>/<%= package.name %>-v<%= package.version %>-linux64.tar.gz"
},
expand : true,
cwd : "build/releases/<%= package.name %>/linux64",
cwd : "<%= dir.releases %>/<%= package.name %>/linux64",
src : [ "**" ],
dest : "<%= package.name %>"
}
Expand Down
2 changes: 1 addition & 1 deletion build/tasks/configs/connect.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module.exports = {
test: {
options: {
port: 8000,
base: "./build/tmp/test"
base: "<%= dir.tmp_test %>"
}
}
};
24 changes: 12 additions & 12 deletions build/tasks/configs/copy.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,41 @@ module.exports = {
win32scripts: {
expand : true,
flatten: true,
src : "build/resources/windows/*",
dest : "build/releases/<%= package.name %>/win32/"
src : "<%= dir.resources %>/windows/*",
dest : "<%= dir.releases %>/<%= package.name %>/win32/"
},
win64scripts: {
expand : true,
flatten: true,
src : "build/resources/windows/*",
dest : "build/releases/<%= package.name %>/win64/"
src : "<%= dir.resources %>/windows/*",
dest : "<%= dir.releases %>/<%= package.name %>/win64/"
},

linux32scripts: {
options: { mode: 493 }, // 0755 (js strict mode)
expand : true,
flatten: true,
src : "build/resources/linux/*.sh",
dest : "build/releases/<%= package.name %>/linux32/"
src : "<%= dir.resources %>/linux/*.sh",
dest : "<%= dir.releases %>/<%= package.name %>/linux32/"
},
linux64scripts: {
options: { mode: 493 }, // 0755 (js strict mode)
expand : true,
flatten: true,
src : "build/resources/linux/*.sh",
dest : "build/releases/<%= package.name %>/linux64/"
src : "<%= dir.resources %>/linux/*.sh",
dest : "<%= dir.releases %>/<%= package.name %>/linux64/"
},

linux32icons: {
expand : true,
flatten: true,
src : "build/resources/icons/*.png",
dest : "build/releases/<%= package.name %>/linux32/icons/"
src : "<%= dir.resources %>/icons/*.png",
dest : "<%= dir.releases %>/<%= package.name %>/linux32/icons/"
},
linux64icons: {
expand : true,
flatten: true,
src : "build/resources/icons/*.png",
dest : "build/releases/<%= package.name %>/linux64/icons/"
src : "<%= dir.resources %>/icons/*.png",
dest : "<%= dir.releases %>/<%= package.name %>/linux64/icons/"
}
};
34 changes: 34 additions & 0 deletions build/tasks/configs/dist.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
module.exports = {
win32archive: {
platform: "win32",
tasks: [ "compress:win32" ],
checksum: "<%= compress.win32.options.archive %>"
},
win64archive: {
platform: "win64",
tasks: [ "compress:win64" ],
checksum: "<%= compress.win64.options.archive %>"
},

osx32archive: {
platform: "osx32",
tasks: [ "compress:osx32" ],
checksum: "<%= compress.osx32.options.archive %>"
},
osx64archive: {
platform: "osx64",
tasks: [ "compress:osx64" ],
checksum: "<%= compress.osx64.options.archive %>"
},

linux32archive: {
platform: "linux32",
tasks: [ "compress:linux32" ],
checksum: "<%= compress.linux32.options.archive %>"
},
linux64archive: {
platform: "linux64",
tasks: [ "compress:linux64" ],
checksum: "<%= compress.linux64.options.archive %>"
}
};
2 changes: 1 addition & 1 deletion build/tasks/configs/jshint.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module.exports = {
options: {
jshintrc: "src/.jshintrc"
},
src : [ "src/**/*.js", "!src/vendor/**", "!src/test/**" ]
src : [ "src/**/*.js", "!src/test/**" ]
},

test: {
Expand Down
16 changes: 8 additions & 8 deletions build/tasks/configs/nwjs.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
module.exports = {
options: {
files : "build/tmp/prod/**",
buildDir: "build/releases",
cacheDir: "build/cache",
version : "<%= grunt.config('main.nwjs-version') %>",
winIco : "build/resources/icons/icon-16-32-48-256.ico",
macIcns : "build/resources/icons/icon-1024.icns",
files : "<%= dir.tmp_prod %>/**",
buildDir: "<%= dir.releases %>",
cacheDir: "<%= dir.cache %>",
version : "<%= main['nwjs-version'] %>",
winIco : "<%= dir.resources %>/icons/icon-16-32-48-256.ico",
macIcns : "<%= dir.resources %>/icons/icon-1024.icns",
macPlist: {
CFBundleName : "<%= grunt.config('main.display-name') %>",
CFBundleDisplayName: "<%= grunt.config('main.display-name') %>",
CFBundleName : "<%= main['display-name'] %>",
CFBundleDisplayName: "<%= main['display-name'] %>",
LSEnvironment : {
PATH: "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
}
Expand Down
Loading

0 comments on commit e700650

Please sign in to comment.