module Deploy
Deploy
jekyll module
Public Instance Methods
gem()
click to toggle source
# File lib/jekyll_theme_marketing/deploy.rb, line 18 def gem if %w[major minor patch].include? ARGV[1] old_version = `bump current | sed -e 's/^.*:.//g' | tr -d '\n'` new_version = `bump show-next #{ARGV[1]} | tr -d '\n'` Git.checkout_new_branch "release/v#{new_version}" create_release_commit old_version, new_version, ARGV[1] Git.push 'origin', "release/v#{new_version}", '--set-upstream' Git.push 'origin', "v#{new_version}" # Push tagged version publish_to_rubygems new_version else puts 'Usage: rake deploy:gem [ major | minor | patch ]' end end
website()
click to toggle source
# File lib/jekyll_theme_marketing/deploy.rb, line 9 def website system 'bundle exec jekyll build' Dir.chdir '_site' do puts '## Deploying to GitHub Pages' push_changes end end
Private Instance Methods
create_release_commit(old, new, type)
click to toggle source
# File lib/jekyll_theme_marketing/deploy.rb, line 35 def create_release_commit(old, new, type) update_changelog old, new update_npm old, new Git.add system "bump #{type} --tag" end
get_pull_requests_info(old, new)
click to toggle source
# File lib/jekyll_theme_marketing/deploy.rb, line 66 def get_pull_requests_info(old, new) git_log_options = '--oneline --simplify-by-decoration' git_log = Git.list_commits "v#{old}", new, git_log_options git_log.gsub(/(?<uid>(^[0-9a-f]+))/) do commit = $LAST_MATCH_INFO[:uid] path = "cetinajero/jekyll-theme-marketing/commit/#{commit}" "- [#{commit}](https://www.github.com/#{path})" end end
publish_to_rubygems(new_version)
click to toggle source
# File lib/jekyll_theme_marketing/deploy.rb, line 42 def publish_to_rubygems(new_version) system "gem build #{File.basename(Dir.pwd)}.gemspec" system "gem push #{File.basename(Dir.pwd)}-#{new_version}.gem" end
push_changes()
click to toggle source
# File lib/jekyll_theme_marketing/deploy.rb, line 47 def push_changes message = "Site updated at #{Time.now.utc}" system 'git add -A' system "git commit -m \"#{message}\"" system 'git push' end
update_changelog(old, new)
click to toggle source
# File lib/jekyll_theme_marketing/deploy.rb, line 55 def update_changelog(old, new) domain = 'www.github.com' path = "cetinajero/jekyll-theme-marketing/releases/tag/v#{new}" heading = "## [#{new}](https://#{domain}/#{path})" pull_requests = get_pull_requests_info old, 'HEAD' data = "#{heading}\n\n#{pull_requests}\n" Content.prepend 'CHANGELOG.md', data end
update_npm(old, new)
click to toggle source
# File lib/jekyll_theme_marketing/deploy.rb, line 77 def update_npm(old, new) Content.replace 'package.json', old, new end