dpl-scalingo 1.10.12.travis.3794.5 → 1.10.12.travis.4032.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53e740403906427a59bdf8e5f154e0cdb5e15ff8e117b15f1164e672f8db5964
4
- data.tar.gz: f29230814590c985f164476f0c9715d2e48197be63b7daecfba436e926fa6003
3
+ metadata.gz: 2a3376ab88b0f6e1c0c38bd240684f507076f63b40b97d9a93c3fe61b6dd0cb7
4
+ data.tar.gz: 76e05f8b2be048bb62d2a35def3ae494238632b89c3810b1984f9792b67c6a43
5
5
  SHA512:
6
- metadata.gz: 8d39c4dcd997e8c6eafdc63a5fe474563f02fe67e9fe1f5e8e2100a8c80d6c76ae57b9afd48c8a844d701be7262c4571a43d016d71a35ac9c51e67f8c3b7b777
7
- data.tar.gz: ac52c1140f920282e38a623a24b1301e0d4c14c049885e052641c77dca964f5af3f3c5ef492abe7a02db6c29edac9705cb253ffe9d95745ca4f6399972e32909
6
+ metadata.gz: 7ca418a0e4254887c7f69e76a9c8f504ce45ebc7ebe54e385c6e2d7b4eb56ab31b436447db83662dbc85d281607d2f427c3835b00a49683f848ed0d5704338bc
7
+ data.tar.gz: d6e85e896c6fd9d0083e5095bb6b466cd4ff70aa787c52b8015847dcdc2c29c46e66eb3e22b3df652bc4118a3894b8aa489c5b5ecca7aa465c461a79755715f8
@@ -6,63 +6,81 @@ require 'date'
6
6
  module DPL
7
7
  class Provider
8
8
  class Scalingo < Provider
9
-
10
9
  def install_deploy_dependencies
11
- unless context.shell "curl -OL https://cli-dl.scalingo.io/release/scalingo_latest_linux_amd64.tar.gz && tar -zxvf scalingo_latest_linux_amd64.tar.gz && mv scalingo_*_linux_amd64/scalingo . && rm scalingo_latest_linux_amd64.tar.gz && rm -r scalingo_*_linux_amd64"
12
- error "Couldn't install Scalingo CLI."
13
- end
10
+ download_url = 'https://cli-dl.scalingo.io/release/scalingo_latest_linux_amd64.tar.gz'
11
+ command = 'curl'
12
+ command = "#{command} --silent" if !@debug
13
+ command = "#{command} --remote-name --location #{download_url}"
14
+ tar_options = 'v' if @debug
15
+ tar_options = "#{tar_options}zxf"
16
+ command = "#{command} && tar -#{tar_options} scalingo_latest_linux_amd64.tar.gz" \
17
+ ' && mv scalingo_*_linux_amd64/scalingo .' \
18
+ ' && rm scalingo_latest_linux_amd64.tar.gz' \
19
+ ' && rm -r scalingo_*_linux_amd64'
20
+
21
+ error "Couldn't install Scalingo CLI." if !context.shell command
14
22
  end
15
23
 
16
24
  def initialize(context, options)
17
25
  super
18
26
  @options = options
19
- @remote = options[:remote] || "scalingo"
20
- @branch = options[:branch] || "master"
21
- end
22
-
23
- def logged_in
24
- context.shell "DISABLE_INTERACTIVE=true ./scalingo login 2> /dev/null > /dev/null"
27
+ @remote = options[:remote] || 'scalingo-dpl'
28
+ @branch = options[:branch] || 'master'
29
+ @region = options[:region] || 'agora-fr1'
30
+ @timeout = options[:timeout] || '60'
31
+ @debug = !options[:debug].nil?
25
32
  end
26
33
 
27
34
  def check_auth
28
35
  token = @options[:api_key] || @options[:api_token]
29
36
  if token
30
- context.shell "timeout 2 ./scalingo login --api-token #{token} 2> /dev/null > /dev/null"
37
+ scalingo("login --api-token #{token}")
31
38
  elsif @options[:username] && @options[:password]
32
- context.shell "echo -e \"#{@options[:username]}\n#{@options[:password]}\" | timeout 2 ./scalingo login 2> /dev/null > /dev/null"
33
- end
34
- if !logged_in
35
- error "Couldn't connect to Scalingo API."
39
+ scalingo('login', [], "echo -e \"#{@options[:username]}\n#{@options[:password]}\"")
36
40
  end
37
41
  end
38
42
 
39
- def setup_key(file, type = nil)
40
- if !logged_in
41
- error "Couldn't connect to Scalingo API."
42
- end
43
- unless context.shell "./scalingo keys-add dpl_tmp_key #{file}"
44
- error "Couldn't add ssh key."
43
+ def setup_key(file, _type = nil)
44
+ if !scalingo("keys-add dpl_tmp_key #{file}")
45
+ error "Couldn't add SSH key."
45
46
  end
46
47
  end
47
48
 
48
49
  def remove_key
49
- if !logged_in
50
- error "Couldn't connect to Scalingo API."
51
- end
52
- unless context.shell "./scalingo keys-remove dpl_tmp_key"
53
- error "Couldn't remove ssh key."
50
+ if !scalingo('keys-remove dpl_tmp_key')
51
+ error "Couldn't remove SSH key."
54
52
  end
55
53
  end
56
54
 
57
55
  def push_app
56
+ install_deploy_dependencies
57
+
58
58
  if @options[:app]
59
- context.shell "git remote add #{@remote} git@scalingo.com:#{@options[:app]}.git 2> /dev/null > /dev/null"
59
+ if !scalingo("--app #{@options[:app]} git-setup --remote #{@remote}")
60
+ error 'Failed to add the Git remote.'
61
+ end
60
62
  end
61
- unless context.shell "git push #{@remote} #{@branch} -f"
63
+
64
+ if !context.shell "git push #{@remote} #{@branch} --force"
62
65
  error "Couldn't push your app."
63
66
  end
64
67
  end
65
68
 
69
+ def scalingo(command, env = [], input = '')
70
+ env << "SCALINGO_REGION=#{@region}" if !@region.empty?
71
+
72
+ if @debug
73
+ env << 'DEBUG=1'
74
+ else
75
+ command += ' > /dev/null'
76
+ end
77
+ command = "#{env.join(' ')} timeout #{@timeout} ./scalingo #{command}"
78
+ command = "#{input} | #{command}" if input != ''
79
+
80
+ puts "Execute #{command}" if @debug
81
+
82
+ context.shell command
83
+ end
66
84
  end
67
85
  end
68
86
  end
data/lib/dpl/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module DPL
2
- VERSION = '1.10.12.travis.3794.5'
2
+ VERSION = '1.10.12.travis.4032.5'
3
3
  end
@@ -2,7 +2,6 @@ require 'spec_helper'
2
2
  require 'dpl/provider/scalingo'
3
3
 
4
4
  describe DPL::Provider::Scalingo do
5
-
6
5
  subject :provider do
7
6
  described_class.new(DummyContext.new, :username => 'travis', :password => 'secret', :remote => 'scalingo', :branch => 'master')
8
7
  end
@@ -10,7 +9,7 @@ describe DPL::Provider::Scalingo do
10
9
  describe "#install_deploy_dependencies" do
11
10
  example do
12
11
  expect(provider.context).to receive(:shell).with(
13
- 'curl -OL https://cli-dl.scalingo.io/release/scalingo_latest_linux_amd64.tar.gz && tar -zxvf scalingo_latest_linux_amd64.tar.gz && mv scalingo_*_linux_amd64/scalingo . && rm scalingo_latest_linux_amd64.tar.gz && rm -r scalingo_*_linux_amd64'
12
+ 'curl --silent --remote-name --location https://cli-dl.scalingo.io/release/scalingo_latest_linux_amd64.tar.gz && tar -zxf scalingo_latest_linux_amd64.tar.gz && mv scalingo_*_linux_amd64/scalingo . && rm scalingo_latest_linux_amd64.tar.gz && rm -r scalingo_*_linux_amd64'
14
13
  ).and_return(true)
15
14
  provider.install_deploy_dependencies
16
15
  end
@@ -19,10 +18,7 @@ describe DPL::Provider::Scalingo do
19
18
  describe "#check_auth" do
20
19
  example do
21
20
  expect(provider.context).to receive(:shell).with(
22
- "echo -e \"travis\nsecret\" | timeout 2 ./scalingo login 2> /dev/null > /dev/null"
23
- ).and_return(true)
24
- expect(provider.context).to receive(:shell).with(
25
- 'DISABLE_INTERACTIVE=true ./scalingo login 2> /dev/null > /dev/null'
21
+ "echo -e \"travis\nsecret\" | SCALINGO_REGION=agora-fr1 timeout 60 ./scalingo login > /dev/null"
26
22
  ).and_return(true)
27
23
  provider.check_auth
28
24
  end
@@ -31,10 +27,7 @@ describe DPL::Provider::Scalingo do
31
27
  describe "#setup_key" do
32
28
  example do
33
29
  expect(provider.context).to receive(:shell).with(
34
- './scalingo keys-add dpl_tmp_key key_file'
35
- ).and_return(true)
36
- expect(provider.context).to receive(:shell).with(
37
- 'DISABLE_INTERACTIVE=true ./scalingo login 2> /dev/null > /dev/null'
30
+ 'SCALINGO_REGION=agora-fr1 timeout 60 ./scalingo keys-add dpl_tmp_key key_file > /dev/null'
38
31
  ).and_return(true)
39
32
  provider.setup_key('key_file')
40
33
  end
@@ -43,10 +36,7 @@ describe DPL::Provider::Scalingo do
43
36
  describe "#remove_key" do
44
37
  example do
45
38
  expect(provider.context).to receive(:shell).with(
46
- './scalingo keys-remove dpl_tmp_key'
47
- ).and_return(true)
48
- expect(provider.context).to receive(:shell).with(
49
- 'DISABLE_INTERACTIVE=true ./scalingo login 2> /dev/null > /dev/null'
39
+ 'SCALINGO_REGION=agora-fr1 timeout 60 ./scalingo keys-remove dpl_tmp_key > /dev/null'
50
40
  ).and_return(true)
51
41
  provider.remove_key
52
42
  end
@@ -55,10 +45,12 @@ describe DPL::Provider::Scalingo do
55
45
  describe "#push_app" do
56
46
  example do
57
47
  expect(provider.context).to receive(:shell).with(
58
- 'git push scalingo master -f'
48
+ 'curl --silent --remote-name --location https://cli-dl.scalingo.io/release/scalingo_latest_linux_amd64.tar.gz && tar -zxf scalingo_latest_linux_amd64.tar.gz && mv scalingo_*_linux_amd64/scalingo . && rm scalingo_latest_linux_amd64.tar.gz && rm -r scalingo_*_linux_amd64'
49
+ ).and_return(true)
50
+ expect(provider.context).to receive(:shell).with(
51
+ 'git push scalingo master --force'
59
52
  ).and_return(true)
60
53
  provider.push_app
61
54
  end
62
55
  end
63
-
64
56
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dpl-scalingo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.12.travis.3794.5
4
+ version: 1.10.12.travis.4032.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Haase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-26 00:00:00.000000000 Z
11
+ date: 2019-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dpl
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.10.12.travis.3794.5
19
+ version: 1.10.12.travis.4032.5
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.10.12.travis.3794.5
26
+ version: 1.10.12.travis.4032.5
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement