deploy_and_deliver 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/README ADDED
@@ -0,0 +1,46 @@
1
+ Deploy and Deliver
2
+ ==================
3
+
4
+ Capistrano recipes for Pivotal Tracker.
5
+
6
+
7
+ To use this task, simply set the following variables:
8
+
9
+ set :pivotal_tracker_project_id, PROJECT_ID
10
+ set :pivotal_tracker_token, TOKEN
11
+
12
+ Then, inside the task for your demo platform, add
13
+
14
+ task :demo do
15
+ ...
16
+ after :deploy, 'pivotal_tracker:deliver_stories'
17
+ end
18
+
19
+
20
+ Installation
21
+ ============
22
+
23
+ Install as a plugin:
24
+
25
+ script/plugin install git://github.com/collectiveidea/deploy_and_deliver.git
26
+
27
+
28
+ Install as a gem:
29
+
30
+ gem install collectiveidea-deploy_and_deliver --source http://gems.github.com
31
+
32
+ Add the following in your Capistrano config to load the recipes:
33
+
34
+ require 'deploy_and_deliver/recipes'
35
+
36
+ Bonus Output
37
+ ============
38
+
39
+
40
+ As an added bonus, if you have Paul Dix's sax-machine gem installed (it's a SAX object parser that uses nokogiri), you'll even get a brief summary report of the delivered stories in your cap output.
41
+
42
+
43
+ Credits
44
+ =======
45
+
46
+ Pluginized and Gemified by Collective Idea (http://collectiveidea.com) based on code from Mike Dalessio, Pivotal Labs (http://pivotallabs.com/users/miked/blog/articles/702-deliver-tracker-stories-from-capistrano)
data/Rakefile ADDED
@@ -0,0 +1,55 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "deploy_and_deliver"
8
+ gem.summary = %Q{Capistrano recipes for Pivotal Tracker}
9
+ gem.description = %Q{Mark Pivotal Tracker stories as Delivered on deploy.}
10
+ gem.email = "daniel@collectiveidea.com"
11
+ gem.homepage = "http://github.com/danielmorrison/deploy_and_deliver"
12
+ gem.authors = ["Daniel Morrison"]
13
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
14
+ end
15
+ rescue LoadError
16
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
17
+ end
18
+
19
+ require 'rake/testtask'
20
+ Rake::TestTask.new(:test) do |test|
21
+ test.libs << 'lib' << 'test'
22
+ test.pattern = 'test/**/*_test.rb'
23
+ test.verbose = true
24
+ end
25
+
26
+ begin
27
+ require 'rcov/rcovtask'
28
+ Rcov::RcovTask.new do |test|
29
+ test.libs << 'test'
30
+ test.pattern = 'test/**/*_test.rb'
31
+ test.verbose = true
32
+ end
33
+ rescue LoadError
34
+ task :rcov do
35
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
36
+ end
37
+ end
38
+
39
+ task :test => :check_dependencies
40
+
41
+ task :default => :test
42
+
43
+ require 'rake/rdoctask'
44
+ Rake::RDocTask.new do |rdoc|
45
+ if File.exist?('VERSION')
46
+ version = File.read('VERSION')
47
+ else
48
+ version = ""
49
+ end
50
+
51
+ rdoc.rdoc_dir = 'rdoc'
52
+ rdoc.title = "deploy_and_deliver #{version}"
53
+ rdoc.rdoc_files.include('README*')
54
+ rdoc.rdoc_files.include('lib/**/*.rb')
55
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.0
data/install.rb ADDED
@@ -0,0 +1 @@
1
+ puts IO.read(File.join(File.dirname(__FILE__), 'README'))
@@ -0,0 +1,41 @@
1
+ Capistrano::Configuration.instance.load do
2
+
3
+ namespace :pivotal_tracker do
4
+ desc "deliver your project's 'finished' stories"
5
+ task :deliver_stories do
6
+ require 'rubygems'
7
+ require 'activeresource'
8
+
9
+ class Story < ActiveResource::Base
10
+ self.site = "http://www.pivotaltracker.com/services/v2/projects/:project_id"
11
+ end
12
+
13
+ Story.headers['X-TrackerToken'] = pivotal_tracker_token
14
+ puts "* delivering tracker stories ..."
15
+ response = Story.put(:deliver_all_finished, :project_id => pivotal_tracker_project_id)
16
+
17
+ begin
18
+ require 'sax-machine'
19
+ class Story
20
+ include SAXMachine
21
+ element :name
22
+ element :story_type
23
+ element :estimate
24
+ element :description
25
+ end
26
+ class Stories
27
+ include SAXMachine
28
+ elements :story, :as => :stories, :class => Story
29
+ end
30
+ doc = Stories.parse(response.body)
31
+ puts "* delivered #{doc.stories.length} stories"
32
+ doc.stories.each do |story|
33
+ puts " - #{story.story_type}: #{story.name} (#{story.estimate} points)"
34
+ end
35
+ rescue LoadError => e
36
+ puts "* stories delivered."
37
+ end
38
+ end
39
+ end
40
+
41
+ end
@@ -0,0 +1 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'deploy_and_deliver', 'recipes'))
metadata ADDED
@@ -0,0 +1,60 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: deploy_and_deliver
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Daniel Morrison
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-09-23 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Mark Pivotal Tracker stories as Delivered on deploy.
17
+ email: daniel@collectiveidea.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README
24
+ files:
25
+ - README
26
+ - Rakefile
27
+ - VERSION
28
+ - install.rb
29
+ - lib/deploy_and_deliver/recipes.rb
30
+ - recipes/deploy_and_deliver.rb
31
+ has_rdoc: true
32
+ homepage: http://github.com/danielmorrison/deploy_and_deliver
33
+ licenses: []
34
+
35
+ post_install_message:
36
+ rdoc_options:
37
+ - --charset=UTF-8
38
+ require_paths:
39
+ - lib
40
+ required_ruby_version: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: "0"
45
+ version:
46
+ required_rubygems_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: "0"
51
+ version:
52
+ requirements: []
53
+
54
+ rubyforge_project:
55
+ rubygems_version: 1.3.5
56
+ signing_key:
57
+ specification_version: 3
58
+ summary: Capistrano recipes for Pivotal Tracker
59
+ test_files: []
60
+