From d3130845d195b97821ca220797107b264c9ea647 Mon Sep 17 00:00:00 2001 From: Matt Colyer Date: Wed, 14 Aug 2013 08:56:35 -0700 Subject: [PATCH] Adds deploy-docs grunt task --- tasks/docs-task.coffee | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tasks/docs-task.coffee b/tasks/docs-task.coffee index 09eab5449..fb027522d 100644 --- a/tasks/docs-task.coffee +++ b/tasks/docs-task.coffee @@ -20,3 +20,33 @@ module.exports = (grunt) -> done = @async() args = [commonArgs..., '--noOutput', '--missing', 'src/app/'] grunt.util.spawn({cmd, args, opts}, done) + + grunt.registerTask 'deploy-docs', 'Publishes latest API docs to atom-docs.githubapp.com', -> + done = @async() + + pushHeroku = (error, result, code) -> + sha = String(result).trim() + cmd = 'git' + args = ['--work-tree=../atom-docs/', '--git-dir=../atom-docs/.git/', 'push', 'heroku', 'master'] + grunt.util.spawn({cmd, args, opts}, done) + + pushOrigin = (error, result, code) -> + sha = String(result).trim() + cmd = 'git' + args = ['--work-tree=../atom-docs/', '--git-dir=../atom-docs/.git/', 'push', 'origin', 'master'] + grunt.util.spawn({cmd, args, opts}, pushHeroku) + + commitChanges = (error, result, code) -> + sha = String(result).trim() + cmd = 'git' + args = ['--work-tree=../atom-docs/', '--git-dir=../atom-docs/.git/', 'commit', '-a', "-m Update API docs to #{sha}"] + grunt.util.spawn({cmd, args, opts}, pushOrigin) + + fetchSha = (error, result, code) -> + cmd = 'git' + args = ['rev-parse', 'HEAD'] + grunt.util.spawn({cmd, args}, commitChanges) + + cmd = 'cp' + args = ['-r', 'docs/api', '../atom-docs/public/'] + grunt.util.spawn {cmd, args, opts}, fetchSha