Fixed #68 - Implemented submodule & gh-pages update task, "publish"

This commit is contained in:
Kieran Sedgwick 2015-03-12 14:30:21 -04:00 коммит произвёл David Humphrey (:humph) david.humphrey@senecacollege.ca
Родитель 1220fb6ece
Коммит e32382cafc
5 изменённых файлов: 174 добавлений и 17 удалений

3
.gitignore поставляемый
Просмотреть файл

@ -34,3 +34,6 @@ Thumbs.db
# Files that can be automatically downloaded that we don't want to ship with our builds
/src/extensibility/node/node_modules/request/tests/
# Mozilla Bramble-specific files
.env

Просмотреть файл

@ -21,11 +21,20 @@
*
*/
/*global module, require*/
// Brackets specific config vars
var habitat = require('habitat');
habitat.load();
var env = new habitat();
var GIT_BRANCH = env.get("BRAMBLE_MAIN_BRANCH") || "bramble";
var GIT_REMOTE = env.get("BRAMBLE_MAIN_REMOTE") || "upstream";
module.exports = function (grunt) {
'use strict';
// load dependencies
require('load-grunt-tasks')(grunt, {pattern: ['grunt-contrib-*', 'grunt-targethtml', 'grunt-usemin', 'grunt-cleanempty']});
require('load-grunt-tasks')(grunt, {pattern: ['grunt-contrib-*', 'grunt-targethtml', 'grunt-usemin', 'grunt-cleanempty', 'grunt-npm', 'grunt-git', 'grunt-update-submodules']});
grunt.loadTasks('tasks');
// Project configuration.
@ -321,7 +330,7 @@ module.exports = function (grunt) {
'<%= meta.src %>',
'<%= meta.test %>',
// These modules include lots of third-party code, so we skip them
'!src/extensions/default/HTMLHinter/slowparse/**',
'!src/extensions/default/HTMLHinter/slowparse/**',
'!src/extensions/default/HTMLHinter/tooltipsy.source.js',
'!src/extensions/default/brackets-browser-livedev/nohost/**',
//With Previous skip statement, this file was ignored, so we specify it directly for jshinting
@ -331,7 +340,7 @@ module.exports = function (grunt) {
src: [
'<%= meta.src %>',
// These modules include lots of third-party code, so we skip them
'!src/extensions/default/HTMLHinter/slowparse/**',
'!src/extensions/default/HTMLHinter/slowparse/**',
'!src/extensions/default/HTMLHinter/tooltipsy.source.js',
'!src/extensions/default/brackets-browser-livedev/nohost/**',
//With Previous skip statement, this file was ignored, so we specify it directly for jshinting
@ -348,9 +357,137 @@ module.exports = function (grunt) {
mac: "<%= shell.repo %>/installer/mac/staging/<%= pkg.name %>.app",
win: "<%= shell.repo %>/installer/win/staging/<%= pkg.name %>.exe",
linux: "<%= shell.repo %>/installer/linux/debian/package-root/opt/brackets/brackets"
},
// Brackets specific tasks
'npm-checkBranch': {
options: {
branch: GIT_BRANCH
}
},
gitcheckout: {
smart: {
options: {
branch: 'gh-pages',
overwrite: false
}
},
},
gitfetch: {
smart: {
options: {}
}
},
"update_submodules": {
publish: {
options: {
params: "--remote -- src/extensions/default/brackets-browser-livedev"
}
}
},
gitcommit: {
module: {
options: {
// This is replaced during the 'publish' task
message: "Placeholder"
}
},
publish: {
options: {
noStatus: true,
allowEmpty: true,
message: "Latest distribution version of Bramble."
}
}
},
gitadd: {
publish: {
files: {
src: ['./dist/*']
},
options: {
force: true
}
},
modules: {
files: {
src: ['./src/extensions/default/brackets-browser-livedev']
}
}
},
gitpush: {
smart: {
options: {
remote: GIT_REMOTE,
// These options are left in for
// clarity. Their actual values
// will be set by the `publish` task.
branch: 'gh-pages',
force: true
},
}
}
});
// Bramble-task: smartCheckout
// Checks out to the branch provided as a target.
// Takes:
// [branch] - The branch to checkout to
// [overwrite] - If true, resets the target branch to the
// value of the starting branch
grunt.registerTask('smartCheckout', function(branch, overwrite) {
overwrite = overwrite == "true" ? true : false;
grunt.config('gitcheckout.smart.options.branch', branch);
grunt.config('gitcheckout.smart.options.overwrite', overwrite);
grunt.task.run('gitcheckout:smart');
});
// Bramble-task: smartPush
// Checks out to the branch provided as a target.
// Takes:
// [branch] - The branch to push to
// [force] - If true, forces a push
grunt.registerTask('smartPush', function(branch, force) {
force = force == "true" ? true : false;
grunt.config('gitpush.smart.options.branch', branch);
grunt.config('gitpush.smart.options.force', force);
grunt.task.run('gitpush:smart');
});
// Bramble-task: publish
// Updates submodules, committing and pushing
// the result upstream, and also builds and pushes the
// dist version for use in thimble.
grunt.registerTask('publish', 'Update submodules and the gh-pages branch with the latest built version of bramble.', function(patchLevel) {
var tasks = [];
var date = new Date(Date.now()).toString();
grunt.config("gitcommit.module.options.message", "Submodule update on " + date);
// Confirm we're ready to start
tasks.push('checkBranch');
// Update submodules, commit and push to "master"
tasks.push('update_submodules:publish');
tasks.push('gitadd:modules');
tasks.push('gitcommit:module');
tasks.push('smartPush:' + GIT_BRANCH + ":false");
// Update gh-pages with new dist
tasks.push('smartCheckout:gh-pages:true');
tasks.push('build');
tasks.push('gitadd:publish');
tasks.push('gitcommit:publish');
tasks.push('smartPush:gh-pages:true');
// Checkout back to the correct branch
tasks.push('smartCheckout:' + GIT_BRANCH);
grunt.task.run(tasks);
});
// task: install
grunt.registerTask('install', ['write-config', 'less']);

11
env.dist Normal file
Просмотреть файл

@ -0,0 +1,11 @@
##
# Config for Mozilla's Bramble adaptation of Brackets
#
## Which branch is considered master?
export BRAMBLE_MAIN_BRANCH="bramble"
## Which remote is considered upstream?
export BRAMBLE_MAIN_REMOTE="upstream"

Просмотреть файл

@ -14,26 +14,32 @@
},
"devDependencies": {
"grunt": "0.4.1",
"jasmine-node": "1.11.0",
"grunt-jasmine-node": "0.1.0",
"grunt-cli": "0.1.9",
"phantomjs": "1.9.13",
"grunt-lib-phantomjs": "0.3.0",
"grunt-contrib-jshint": "0.6.0",
"grunt-contrib-watch": "0.4.3",
"grunt-contrib-jasmine": "0.4.2",
"grunt-template-jasmine-requirejs": "0.1.0",
"grunt-contrib-cssmin": "0.6.0",
"grunt-contrib-clean": "0.4.1",
"grunt-contrib-concat": "0.3.0",
"grunt-contrib-copy": "0.4.1",
"grunt-contrib-cssmin": "0.6.0",
"grunt-contrib-htmlmin": "0.1.3",
"grunt-contrib-jasmine": "0.4.2",
"grunt-contrib-jshint": "0.6.0",
"grunt-contrib-less": "0.8.2",
"grunt-contrib-requirejs": "0.4.1",
"grunt-contrib-uglify": "0.8.0",
"grunt-contrib-concat": "0.3.0",
"grunt-contrib-uglify": "0.2.0",
"grunt-contrib-watch": "0.4.3",
"grunt-git": "^0.3.4",
"grunt-jasmine-node": "0.1.0",
"grunt-lib-phantomjs": "0.3.0",
"grunt-npm": "git://github.com/sedge/grunt-npm.git#branchcheck",
"grunt-shell": "^1.1.2",
"grunt-targethtml": "0.2.6",
"grunt-template-jasmine-requirejs": "0.1.0",
"grunt-update-submodules": "^0.4.1",
"grunt-usemin": "0.1.11",
"habitat": "^3.1.2",
"jasmine-node": "1.11.0",
"jshint": "2.1.4",
"load-grunt-tasks": "0.2.0",
"phantomjs": "1.9.13",
"q": "0.9.2",
"semver": "^4.1.0",
"jshint": "2.1.4",
@ -46,8 +52,8 @@
},
"licenses": [
{
"type": "MIT",
"url": "https://github.com/adobe/brackets/blob/master/LICENSE"
"type": "MIT",
"url": "https://github.com/adobe/brackets/blob/master/LICENSE"
}
]
}

@ -1 +1 @@
Subproject commit 6f52867a71eebbb3e0ecf8488d47a30bfc800816
Subproject commit 392ad2b2af67a03718e62063f48cdce4d4daf588