capistrano-gitcopy 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1741d01b98d0f6089c3db7e30bf64273987b333a
4
+ data.tar.gz: 1aca3c96da1b21e228d1d2b9eb6905fbb0ec6ee7
5
+ SHA512:
6
+ metadata.gz: b432ca9d23f9b7f6bb90b33ee8716a67fbd3730aee00ae36f7a299c6f8d151143fa76a90f5869a9c24effc60898ed61cdb35aa9725ad4a779f87e1ba14d7d0f0
7
+ data.tar.gz: e0d586a4a9a10d00df8b780a5e2efb5512e32de1e7d2b949ee12ca37d71d54fe184071af1042132d4b622b23d16720dd8910392bf673a1c943f68691d7fe72a3
data/README.md ADDED
@@ -0,0 +1,51 @@
1
+ # Capistrano::GitCopy
2
+
3
+ This gem provides the GitCopy SCM strategy for Capistrano v3. It creates an archive locally (from git), uploads to the
4
+ server, unpacks and creates the release as usual. This avoids having to manage deploy keys on your server nor
5
+ connectivity from the server to the git repository. This is particular useful for private git repos and codebases.
6
+
7
+ ## Notes
8
+
9
+ **If you use this integration with capistrano-rails, please ensure that you have `capistrano-bundler >= 1.1.0`.**
10
+
11
+ ## Installation
12
+
13
+ Add this line to your application's Gemfile:
14
+
15
+ ``` ruby
16
+ # Gemfile
17
+ gem 'capistrano', '~> 3.0'
18
+ gem 'capistrano-gitcopy'
19
+ ```
20
+
21
+ And then execute:
22
+
23
+ ``` sh
24
+ $ bundle install
25
+ ```
26
+
27
+ ## Usage
28
+
29
+ Require in Capfile to use the default task:
30
+
31
+ ``` ruby
32
+ # Capfile
33
+ require 'capistrano/gitcopy'
34
+ ```
35
+
36
+ On your deploy.rb change the scm strategy:
37
+
38
+ ``` ruby
39
+ set :scm, :gitcopy
40
+ ```
41
+
42
+ And you should be good to go!
43
+
44
+
45
+ ## Contributing
46
+
47
+ 1. Fork it
48
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
49
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
50
+ 4. Push to the branch (`git push origin my-new-feature`)
51
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env rake
2
+
3
+ begin
4
+ require 'bundler/setup'
5
+ rescue LoadError
6
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
7
+ end
8
+
9
+ require 'bundler/gem_tasks'
10
+
11
+ require 'rspec/core'
12
+ require 'rspec/core/rake_task'
13
+
14
+ task default: :spec
@@ -0,0 +1 @@
1
+ load File.expand_path("../tasks/gitcopy.rake", __FILE__)
@@ -0,0 +1,44 @@
1
+ namespace :load do
2
+ task :defaults do
3
+ set(:gitcopy_release_id, -> { `git rev-parse --short HEAD`.gsub(/\n/,'') })
4
+ set(:gitcopy_tarball_path, -> { "/tmp/#{fetch(:application)}-#{fetch(:gitcopy_release_id)}.tar.gz" })
5
+ end
6
+ end
7
+
8
+ namespace :gitcopy do
9
+ task :wrapper do; end
10
+ task :check do; end
11
+ task :update do; end
12
+
13
+ task :test do
14
+ on release_roles(:web) do
15
+ test!(" [ -f #{fetch(:gitcopy_tarball_path)} ] ")
16
+ end
17
+ end
18
+
19
+ task :clone do
20
+ on release_roles(:web) do
21
+ tarball_path = fetch(:gitcopy_tarball_path)
22
+ system("git archive -o #{tarball_path} HEAD")
23
+ upload!(tarball_path, tarball_path)
24
+ system("rm -rf #{tarball_path}")
25
+ end
26
+ end
27
+
28
+ task create_release: :'gitcopy:clone' do
29
+ on release_roles(:web) do
30
+ execute(:mkdir, '-p', release_path)
31
+ execute(:tar, '-f', fetch(:gitcopy_tarball_path), '-x -C', release_path)
32
+ # execute(:rm, '-f', fetch(:gitcopy_tarball_path))
33
+ end
34
+ end
35
+
36
+ task :set_current_revision do
37
+ on release_roles(:web) do
38
+ set :current_revision, fetch(:gitcopy_release_id)
39
+ end
40
+ end
41
+
42
+ task :cleanup do; end
43
+ end
44
+
data/lib/gitcopy.rb ADDED
File without changes
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: capistrano-gitcopy
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Andre Dieb Martins
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: capistrano
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: sshkit
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.2'
41
+ description: Deploy by creating a tarball using git archive and uploading it to the
42
+ server. No access/credentials from your server to the Git repo required.
43
+ email:
44
+ - andre.dieb@gmail.com
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - README.md
50
+ - Rakefile
51
+ - lib/capistrano/gitcopy.rb
52
+ - lib/capistrano/tasks/gitcopy.rake
53
+ - lib/gitcopy.rb
54
+ homepage: https://github.com/dieb/capistrano-gitcopy
55
+ licenses:
56
+ - MIT
57
+ metadata: {}
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubyforge_project:
74
+ rubygems_version: 2.4.3
75
+ signing_key:
76
+ specification_version: 4
77
+ summary: ''
78
+ test_files: []