Skip to content

Commit

Permalink
Fixed adobe#68 - Implemented submodule & gh-pages update task, "publish"
Browse files Browse the repository at this point in the history
  • Loading branch information
sedge authored and humphd committed May 26, 2015
1 parent 1220fb6 commit e32382c
Show file tree
Hide file tree
Showing 5 changed files with 174 additions and 17 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -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
143 changes: 140 additions & 3 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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']);

Expand Down
11 changes: 11 additions & 0 deletions env.dist
Original file line number Diff line number Diff line change
@@ -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"


32 changes: 19 additions & 13 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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"
}
]
}

0 comments on commit e32382c

Please sign in to comment.