evrone-ci-common 0.2.0.pre3 → 0.2.0.pre4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8ba20882ed0c72497ad65e88ca2afe9003c46a60
4
- data.tar.gz: 3c27b790c0862c894a95f9707ab522fa3988be80
3
+ metadata.gz: 81ca8965c9dae40ab4566ba5d5c048a2a87b389e
4
+ data.tar.gz: 4e6d92fed51fc19fcadc01aa927f1a34682d4add
5
5
  SHA512:
6
- metadata.gz: eeea40bdf321061becc49103e829436c9c31ab77be419a7ae0a56bd9ffdb66d4142465ed376a35a672353a6219b1f6dbb26a999780b2f4b6e7d4d43430e850f3
7
- data.tar.gz: 57ee29abf9be33e9ae6e1b1d7af1f24ac40bf927323e2e23505de79f28116fdcd1da6a71a72bd29c06c29506db06a10aa23ca37d3fb509fc846fb2968aa4be42
6
+ metadata.gz: ed9a28451eee34d32576499f36d9308b93b8e41b2a0e7f8dc54fb2df7faf6c06a76e1a2508fb248202388d62c80316e64867432fb81fed19d7701f1536ce735f
7
+ data.tar.gz: 9633d1460ab29127d4a381917408f7bd4b20840b877a599dd4fd1fa515ae2bb72fdfb4579296be7ac82ab8dd59a8f684c3954dc9520ecf96e1bba3513ee93c64
@@ -1,7 +1,7 @@
1
1
  module Evrone
2
2
  module CI
3
3
  module Common
4
- VERSION = "0.2.0.pre3"
4
+ VERSION = "0.2.0.pre4"
5
5
  end
6
6
  end
7
7
  end
@@ -11,18 +11,26 @@ module Evrone
11
11
 
12
12
  COMMIT_RE = /^(.*) -:- (.*) \((.*)\) -:- (.*)$/
13
13
 
14
- attr_reader :src, :sha, :path, :logger, :git_ssh
14
+ attr_reader :src, :sha, :path, :logger, :git_ssh, :pull_request_id, :branch
15
15
 
16
16
  def initialize(src, sha, path, options = {}, &block)
17
- @src = src
18
- @sha = sha
19
- @path = path
20
- @git_ssh = GitSSH.new options[:deploy_key]
21
- @logger = block
17
+ @src = src
18
+ @sha = sha
19
+ @path = path
20
+ @branch = options[:branch]
21
+ @pull_request_id = options[:pull_request_id]
22
+ @git_ssh = GitSSH.new options[:deploy_key]
23
+ @logger = block
24
+ end
25
+
26
+ def open
27
+ git_ssh.open do
28
+ yield if block_given?
29
+ end
22
30
  end
23
31
 
24
32
  def fetch
25
- code = git_ssh.open do
33
+ code = open do
26
34
  repo_exist? ? update : clone
27
35
  end
28
36
  code = checkout if code == 0
@@ -36,7 +44,16 @@ module Evrone
36
44
  def make_fetch_command
37
45
  clone_cmd = "git clone -q #{src} #{path}"
38
46
  checkout_cmd = "git checkout -qf #{sha}"
39
- %{ (test -d #{path} || ( echo $ #{clone_cmd} && #{clone_cmd} ) ) && cd #{path} && echo $ #{checkout_cmd} && #{checkout_cmd} }.strip
47
+ cmd = %{
48
+ if [ ! -d #{path} ] ; then
49
+ echo "$ #{clone_cmd}" &&
50
+ #{clone_cmd} || exit $? ;
51
+ fi ;
52
+ echo "$ #{checkout_cmd}" &&
53
+ cd #{path} &&
54
+ #{checkout_cmd}
55
+ }.gsub("\n", ' ').gsub(/\ +/, ' ').strip
56
+ cmd
40
57
  end
41
58
 
42
59
  def commit_info
@@ -8,8 +8,9 @@ describe Evrone::CI::SCM::Git do
8
8
  let(:sha) { message.sha }
9
9
  let(:deploy_key) { message.deploy_key }
10
10
  let(:output) { "" }
11
+ let(:options) { {} }
11
12
  let(:git) {
12
- described_class.new src, sha, path, deploy_key: deploy_key, &method(:add_to_output)
13
+ described_class.new src, sha, path, options, &method(:add_to_output)
13
14
  }
14
15
 
15
16
  subject { git }
@@ -18,13 +19,31 @@ describe Evrone::CI::SCM::Git do
18
19
  after { FileUtils.rm_rf path }
19
20
 
20
21
  context "just created" do
21
- its(:src) { should eq src }
22
- its(:sha) { should eq sha }
23
- its(:path) { should eq path }
22
+ its(:src) { should eq src }
23
+ its(:sha) { should eq sha }
24
+ its(:path) { should eq path }
25
+ its(:branch) { should be_nil }
26
+ its(:pull_request_id) { should be_nil }
27
+ its("git_ssh.deploy_key") { should be_nil }
28
+ end
29
+
30
+ context "assign branch" do
31
+ let(:options) { { branch: 'master' } }
32
+ its(:branch) { should eq 'master' }
33
+ end
34
+
35
+ context "assign pull_request_id" do
36
+ let(:options) { { pull_request_id: 1} }
37
+ its(:pull_request_id) { should eq 1 }
38
+ end
39
+
40
+ context "assign deploy_key" do
41
+ let(:options) { { deploy_key: deploy_key } }
24
42
  its("git_ssh.deploy_key") { should eq deploy_key }
25
43
  end
26
44
 
27
45
  context "fetch" do
46
+ let(:options) { { deploy_key: deploy_key } }
28
47
  subject { git.fetch }
29
48
 
30
49
  it { should eq 0 }
@@ -61,9 +80,10 @@ describe Evrone::CI::SCM::Git do
61
80
  context "make_fetch_command" do
62
81
  include Evrone::Common::Spawn
63
82
 
83
+ let(:options) { { deploy_key: deploy_key } }
64
84
  let(:env) { {'GIT_SSH' => git.git_ssh.location.path} }
65
85
  let(:run) do
66
- git.git_ssh.open do
86
+ git.open do
67
87
  spawn(env, git.make_fetch_command, &method(:add_to_output))
68
88
  end
69
89
  end
@@ -106,9 +126,10 @@ describe Evrone::CI::SCM::Git do
106
126
  end
107
127
 
108
128
  context ".make_export_command" do
109
- let(:from) { path }
110
- let(:to) { '/tmp/.test/export' }
111
- let(:expected) { "(cd '#{from}' && git checkout-index -a -f --prefix='#{to}/')" }
129
+ let(:options) { { deploy_key: deploy_key } }
130
+ let(:from) { path }
131
+ let(:to) { '/tmp/.test/export' }
132
+ let(:expected) { "(cd '#{ from }' && git checkout-index -a -f --prefix='#{ to}/')" }
112
133
  subject { described_class.make_export_command from, to}
113
134
  it { should eq expected }
114
135
 
@@ -129,8 +150,9 @@ describe Evrone::CI::SCM::Git do
129
150
  end
130
151
 
131
152
  context "commit_info" do
153
+ let(:options) { { deploy_key: deploy_key } }
132
154
  subject { git.commit_info }
133
- before { git.fetch }
155
+ before { git.fetch }
134
156
 
135
157
  it "should be" do
136
158
  expect(subject.sha).to eq 'b665f90239563c030f1b280a434b3d84daeda1bd'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evrone-ci-common
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.pre3
4
+ version: 0.2.0.pre4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Galinsky