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 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: