forked from magento/devdocs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRakefile
72 lines (59 loc) · 1.83 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
require_relative './rakelib/rake-helper'
include JekyllRake
include Proofer
include Converter
desc "Same as 'rake', 'rake preview'"
task default: %w[preview]
desc "Same as 'test:report'"
task test: %w[test:report]
desc 'Preview the devdocs locally'
task preview: %w[install clean] do
print 'Generating devdocs locally ... '.magenta
if File.exist?('_config.local.yml')
print 'enabled the additional configuration parameters from _config.local.yml: $ '.magenta
preview_local
else
print 'enabled the default configuration; generating the entire devdocs $ '.magenta
preview
end
end
desc 'Remove the generated content'
task :clean do
print 'Cleaning after the last site generation: $ '.magenta
jekyll 'clean'
puts 'Clean!'.green
end
desc 'Install gems listed in the Gemfile'
task :install do
print 'Install gems listed in the Gemfile: $ '.magenta
sh 'bundle install'
puts 'Installed!'.green
end
desc 'Build the entire website'
task build_and_deploy: %w[clean] do
print 'Building the site with Jekyll: $ '.magenta
# Check for uncommitted messages
abort "\nCannot checkout. The branch contains uncommitted messages.".red unless `git status --short`.empty?
# Back up an environmental variable
jekyll_env = ENV['JEKYLL_ENV']
ENV['JEKYLL_ENV'] = 'production'
# Build the site
jekyll('build --verbose --baseurl=/devdocs')
# Restore the environmental variable
ENV['JEKYLL_ENV'] = jekyll_env
# Remember the SHA of the built commit
commit = `git log --pretty=format:"%h" -1`
# Deploy the site
`git checkout gh-pages`
`cp -R _site/ ./`
`git add --all`
`git commit --message "Deploy #{commit}"`
`git push public`
`git checkout -`
puts 'Done!'.green
end
desc 'Checkout to the master branch'
task :to_master do
print 'Checking out the branch to master: $ '.magenta
sh 'git checkout master'
end