ruby-terraform 0.50.0 → 0.51.0.pre.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 +4 -4
- data/Gemfile.lock +3 -1
- data/Rakefile +36 -1
- data/config/secrets/circle_ci/config.yaml +4 -0
- data/lib/ruby_terraform/version.rb +1 -1
- data/rake/circleci.rb +71 -0
- data/ruby_terraform.gemspec +1 -0
- metadata +20 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38713cdcc13c8730928709bf5b6f3cb71eb8e4ccfadcad7ba2790cf32084139b
|
4
|
+
data.tar.gz: 9fd9e64ed1e3e46c4563b693a2710c4cb1352af78b32720ea54fc92d05cabc71
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44d4bda94b4b60cda29d977262c699e6d8cd68f7272b35fb7e9d1f28133733ed4e79947b654b40e875ca843ad7da636182bb8037a4ae3619eba53ae604462d48
|
7
|
+
data.tar.gz: b6894f17a96dcf535ddf3b02ad8d80cf3b43501d7847d30ca0372dc24646dec9e126e95a0c76d23409236f041ba698644975eec03adb713d8189cd6011b17e18
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ruby-terraform (0.
|
4
|
+
ruby-terraform (0.51.0.pre.1)
|
5
5
|
lino (~> 1.1)
|
6
6
|
|
7
7
|
GEM
|
@@ -9,6 +9,7 @@ GEM
|
|
9
9
|
specs:
|
10
10
|
concurrent-ruby (1.1.6)
|
11
11
|
diff-lcs (1.3)
|
12
|
+
excon (0.72.0)
|
12
13
|
gem-release (2.1.1)
|
13
14
|
hamster (3.0.0)
|
14
15
|
concurrent-ruby (~> 1.0)
|
@@ -36,6 +37,7 @@ PLATFORMS
|
|
36
37
|
|
37
38
|
DEPENDENCIES
|
38
39
|
bundler (~> 2.0)
|
40
|
+
excon (~> 0.72)
|
39
41
|
gem-release (~> 2.1)
|
40
42
|
rake (~> 13.0)
|
41
43
|
rspec (~> 3.9)
|
data/Rakefile
CHANGED
@@ -1,9 +1,44 @@
|
|
1
|
-
require
|
1
|
+
require 'rspec/core/rake_task'
|
2
|
+
|
3
|
+
require_relative 'rake/circleci'
|
2
4
|
|
3
5
|
RSpec::Core::RakeTask.new(:spec)
|
4
6
|
|
5
7
|
task :default => :spec
|
6
8
|
|
9
|
+
namespace :pipeline do
|
10
|
+
namespace :env_vars do
|
11
|
+
circle_ci_config = 'config/secrets/circle_ci/config.yaml'
|
12
|
+
|
13
|
+
desc "Destroy all environment variables from the CircleCI pipeline"
|
14
|
+
task :destroy do
|
15
|
+
puts "Deleting all environment variables from pipeline..."
|
16
|
+
CircleCI.new(circle_ci_config).delete_env_vars
|
17
|
+
puts "Done."
|
18
|
+
end
|
19
|
+
|
20
|
+
desc "Provision all environment variables to the CircleCI pipeline"
|
21
|
+
task :provision do
|
22
|
+
puts "Creating all environment variables in pipeline..."
|
23
|
+
env_vars = {
|
24
|
+
'ENCRYPTION_PASSPHRASE':
|
25
|
+
File.read('config/secrets/ci/encryption.passphrase').chomp
|
26
|
+
}
|
27
|
+
|
28
|
+
env_vars.each do |name, value|
|
29
|
+
puts "Creating environment variable: #{name}"
|
30
|
+
CircleCI.new(circle_ci_config).create_env_var(name, value)
|
31
|
+
end
|
32
|
+
|
33
|
+
puts "Done."
|
34
|
+
end
|
35
|
+
|
36
|
+
desc "Ensures all environment variables are configured on the CircleCI " +
|
37
|
+
"pipeline"
|
38
|
+
task :ensure => [:'destroy', :'provision']
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
7
42
|
namespace :version do
|
8
43
|
desc "Bump version for specified type (pre, major, minor patch)"
|
9
44
|
task :bump, [:type] do |_, args|
|
data/rake/circleci.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'excon'
|
3
|
+
require 'yaml'
|
4
|
+
require 'json'
|
5
|
+
require 'pp'
|
6
|
+
|
7
|
+
class CircleCI
|
8
|
+
def initialize(config_path)
|
9
|
+
config = YAML.load_file(config_path)
|
10
|
+
|
11
|
+
@api_token = config["circle_ci_api_token"]
|
12
|
+
@base_url = config["circle_ci_base_url"]
|
13
|
+
@project_slug = config["circle_ci_project_slug"]
|
14
|
+
end
|
15
|
+
|
16
|
+
def find_env_vars
|
17
|
+
response = assert_successful(Excon.get(env_vars_url, headers: headers))
|
18
|
+
body = JSON.parse(response.body)
|
19
|
+
env_vars = body["items"].map { |item| item["name"] }
|
20
|
+
|
21
|
+
env_vars
|
22
|
+
end
|
23
|
+
|
24
|
+
def delete_env_var(name)
|
25
|
+
assert_successful(Excon.delete(env_var_url(name), headers))
|
26
|
+
end
|
27
|
+
|
28
|
+
def delete_env_vars
|
29
|
+
env_vars = find_env_vars
|
30
|
+
env_vars.each do |env_var|
|
31
|
+
delete_env_var(env_var)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def create_env_var(name, value)
|
36
|
+
body = JSON.dump(name: name, value: value)
|
37
|
+
assert_successful(
|
38
|
+
Excon.post(env_vars_url, body: body, headers: headers))
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def headers
|
44
|
+
{
|
45
|
+
"Circle-Token": @api_token,
|
46
|
+
"Content-Type": "application/json",
|
47
|
+
"Accept": "application/json"
|
48
|
+
}
|
49
|
+
end
|
50
|
+
|
51
|
+
def assert_successful(response)
|
52
|
+
pp response
|
53
|
+
unless response.status >= 200 && response.status < 300
|
54
|
+
host = response.data[:host]
|
55
|
+
path = response.data[:path]
|
56
|
+
status = response.status
|
57
|
+
reason = response.data[:reason_phrase]
|
58
|
+
raise "Unsuccessful request: #{host}#{path} #{status} #{reason}"
|
59
|
+
end
|
60
|
+
response
|
61
|
+
end
|
62
|
+
|
63
|
+
def env_vars_url
|
64
|
+
"#{@base_url}/v2/project/#{@project_slug}/envvar"
|
65
|
+
end
|
66
|
+
|
67
|
+
def env_var_url(name)
|
68
|
+
"#{@base_url}/v1.1/project/#{@project_slug}/envvar/#{name}?" +
|
69
|
+
"circle-token=#{@api_token}"
|
70
|
+
end
|
71
|
+
end
|
data/ruby_terraform.gemspec
CHANGED
@@ -30,5 +30,6 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
31
31
|
spec.add_development_dependency 'rake', '~> 13.0'
|
32
32
|
spec.add_development_dependency 'rspec', '~> 3.9'
|
33
|
+
spec.add_development_dependency 'excon', '~> 0.72'
|
33
34
|
spec.add_development_dependency 'gem-release', '~> 2.1'
|
34
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-terraform
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.51.0.pre.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toby Clemson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lino
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '3.9'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: excon
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.72'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.72'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: gem-release
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,6 +128,7 @@ files:
|
|
114
128
|
- config/secrets/ci/gpg.public
|
115
129
|
- config/secrets/ci/ssh.private
|
116
130
|
- config/secrets/ci/ssh.public
|
131
|
+
- config/secrets/circle_ci/config.yaml
|
117
132
|
- config/secrets/rubygems/credentials
|
118
133
|
- go
|
119
134
|
- lib/ruby_terraform.rb
|
@@ -134,6 +149,7 @@ files:
|
|
134
149
|
- lib/ruby_terraform/errors.rb
|
135
150
|
- lib/ruby_terraform/errors/execution_error.rb
|
136
151
|
- lib/ruby_terraform/version.rb
|
152
|
+
- rake/circleci.rb
|
137
153
|
- ruby_terraform.gemspec
|
138
154
|
- scripts/ci/common/configure-git.sh
|
139
155
|
- scripts/ci/common/configure-rubygems.sh
|
@@ -157,9 +173,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
157
173
|
version: 2.4.7
|
158
174
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
175
|
requirements:
|
160
|
-
- - "
|
176
|
+
- - ">"
|
161
177
|
- !ruby/object:Gem::Version
|
162
|
-
version:
|
178
|
+
version: 1.3.1
|
163
179
|
requirements: []
|
164
180
|
rubygems_version: 3.0.3
|
165
181
|
signing_key:
|