ruby-terraform 0.50.0 → 0.51.0.pre.1

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: fd6dbb0d66e5b67590ed5ae2efd0b4018fa12242339e1e79c9d7e923162ed4f1
4
- data.tar.gz: 1ab830267b217efa7dda298fbe1f501eca51311e10567781edd48c6f0955b14e
3
+ metadata.gz: 38713cdcc13c8730928709bf5b6f3cb71eb8e4ccfadcad7ba2790cf32084139b
4
+ data.tar.gz: 9fd9e64ed1e3e46c4563b693a2710c4cb1352af78b32720ea54fc92d05cabc71
5
5
  SHA512:
6
- metadata.gz: 10daf07a7e9cf333c80418972c78c8d537aafca2e4525cab35f42eff60ed5a67472e0c916b965011163e9be6e8be38f6b9650e4b8c929a698d63df307ab68b8b
7
- data.tar.gz: 26b5f3dd99f3bb91f3b6c899f73332645db146df2396da4759069db350c58f65250eaa01d380ac0cf74ef864dcd09cceaff5081cb9c205a8b3fe34f98368747d
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.50.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 "rspec/core/rake_task"
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|
@@ -0,0 +1,4 @@
1
+ ---
2
+ circle_ci_api_token: "27393e98772c1342785957a776ca4acbaea7f7cb"
3
+ circle_ci_base_url: "https://circleci.com/api"
4
+ circle_ci_project_slug: "github/infrablocks/ruby_terraform"
@@ -1,3 +1,3 @@
1
1
  module RubyTerraform
2
- VERSION = "0.50.0"
2
+ VERSION = "0.51.0.pre.1"
3
3
  end
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
@@ -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.50.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-06 00:00:00.000000000 Z
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: '0'
178
+ version: 1.3.1
163
179
  requirements: []
164
180
  rubygems_version: 3.0.3
165
181
  signing_key: