ruby-terraform 0.62.0 → 0.65.0.pre.3
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 +111 -32
- data/README.md +29 -9
- data/Rakefile +81 -37
- data/bin/console +3 -3
- data/lib/ruby-terraform.rb +1 -1
- data/lib/ruby_terraform.rb +1 -1
- data/lib/ruby_terraform/commands/apply.rb +24 -24
- data/lib/ruby_terraform/commands/base.rb +12 -14
- data/lib/ruby_terraform/commands/clean.rb +2 -2
- data/lib/ruby_terraform/commands/destroy.rb +24 -24
- data/lib/ruby_terraform/commands/format.rb +0 -1
- data/lib/ruby_terraform/commands/get.rb +7 -8
- data/lib/ruby_terraform/commands/import.rb +1 -1
- data/lib/ruby_terraform/commands/init.rb +22 -16
- data/lib/ruby_terraform/commands/output.rb +1 -2
- data/lib/ruby_terraform/commands/plan.rb +24 -23
- data/lib/ruby_terraform/commands/refresh.rb +22 -21
- data/lib/ruby_terraform/commands/remote_config.rb +12 -12
- data/lib/ruby_terraform/commands/show.rb +0 -1
- data/lib/ruby_terraform/commands/validate.rb +20 -19
- data/lib/ruby_terraform/commands/workspace.rb +4 -7
- data/lib/ruby_terraform/errors/execution_error.rb +1 -1
- data/lib/ruby_terraform/version.rb +1 -1
- metadata +111 -43
- data/.circleci/config.yml +0 -56
- data/.circleci/gpg.private.enc +0 -0
- data/.envrc +0 -5
- data/.git-crypt/.gitattributes +0 -4
- data/.git-crypt/keys/default/0/41D2606F66C3FF28874362B61A16916844CE9D82.gpg +0 -0
- data/.git-crypt/keys/default/0/AAE932B730C2BA697FFDFAE05DA390873E38358B.gpg +0 -0
- data/.gitattributes +0 -1
- data/.gitignore +0 -31
- data/.rspec +0 -2
- data/.ruby-version +0 -1
- data/CHANGELOG.md +0 -44
- data/TODO.md +0 -1
- data/config/secrets/.unlocked +0 -1
- data/config/secrets/ci/encryption.passphrase +0 -1
- data/config/secrets/ci/gpg.private +0 -58
- data/config/secrets/ci/gpg.public +0 -31
- data/config/secrets/ci/ssh.private +0 -51
- data/config/secrets/ci/ssh.public +0 -1
- data/config/secrets/circle_ci/config.yaml +0 -2
- data/config/secrets/github/config.yaml +0 -2
- data/config/secrets/rubygems/credentials +0 -2
- data/go +0 -56
- data/ruby_terraform.gemspec +0 -37
- data/scripts/ci/common/configure-git.sh +0 -8
- data/scripts/ci/common/configure-rubygems.sh +0 -16
- data/scripts/ci/common/install-git-crypt.sh +0 -8
- data/scripts/ci/common/install-gpg-key.sh +0 -19
- data/scripts/ci/steps/prerelease.sh +0 -16
- data/scripts/ci/steps/release.sh +0 -18
- data/scripts/ci/steps/test.sh +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8134ce739c38d0dc08a0ecdb0737d6227b8408809258c8eada6d95591182194d
|
4
|
+
data.tar.gz: bb5e4eeeaa9c3817ab67da0d2d2bb1b974aedb9b380934cbdc7ac633039e61c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7b1373932d2c2ff94456bad7e8a96daab3a84500a509bfd3ae557193a54e00310d773fd3d99996459bf5859434b385df609a863db7e4844536a64d98c24af53
|
7
|
+
data.tar.gz: c80e73a02de20a50a8feec447b826b5a63a1a8f62b8d7e40ec89c3e4266ef8a3b2a836257bb5a005d9676d6ec0ab6238e9db15709a3b5f9d844781782b1bb796
|
data/Gemfile.lock
CHANGED
@@ -1,95 +1,174 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ruby-terraform (0.
|
4
|
+
ruby-terraform (0.65.0.pre.3)
|
5
5
|
lino (>= 1.5)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
activesupport (6.
|
10
|
+
activesupport (6.1.3.1)
|
11
11
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
12
|
-
i18n (>=
|
13
|
-
minitest (
|
14
|
-
tzinfo (~>
|
15
|
-
zeitwerk (~> 2.
|
12
|
+
i18n (>= 1.6, < 2)
|
13
|
+
minitest (>= 5.1)
|
14
|
+
tzinfo (~> 2.0)
|
15
|
+
zeitwerk (~> 2.3)
|
16
16
|
addressable (2.7.0)
|
17
17
|
public_suffix (>= 2.0.2, < 5.0)
|
18
|
+
ast (2.4.2)
|
19
|
+
coderay (1.1.3)
|
18
20
|
colored2 (3.1.2)
|
19
|
-
concurrent-ruby (1.1.
|
21
|
+
concurrent-ruby (1.1.8)
|
20
22
|
diff-lcs (1.4.4)
|
21
|
-
|
22
|
-
|
23
|
+
docile (1.3.5)
|
24
|
+
excon (0.79.0)
|
25
|
+
faker (2.17.0)
|
26
|
+
i18n (>= 1.6, < 2)
|
27
|
+
faraday (1.3.0)
|
28
|
+
faraday-net_http (~> 1.0)
|
23
29
|
multipart-post (>= 1.2, < 3)
|
24
30
|
ruby2_keywords
|
25
|
-
|
31
|
+
faraday-net_http (1.0.1)
|
32
|
+
ffi (1.15.0)
|
33
|
+
formatador (0.2.5)
|
34
|
+
gem-release (2.2.1)
|
35
|
+
guard (2.16.2)
|
36
|
+
formatador (>= 0.2.4)
|
37
|
+
listen (>= 2.7, < 4.0)
|
38
|
+
lumberjack (>= 1.0.12, < 2.0)
|
39
|
+
nenv (~> 0.1)
|
40
|
+
notiffany (~> 0.0)
|
41
|
+
pry (>= 0.9.12)
|
42
|
+
shellany (~> 0.0)
|
43
|
+
thor (>= 0.18.1)
|
44
|
+
guard-compat (1.2.1)
|
45
|
+
guard-rspec (4.7.3)
|
46
|
+
guard (~> 2.1)
|
47
|
+
guard-compat (~> 1.1)
|
48
|
+
rspec (>= 2.99.0, < 4.0)
|
26
49
|
hamster (3.0.0)
|
27
50
|
concurrent-ruby (~> 1.0)
|
28
|
-
i18n (1.8.
|
51
|
+
i18n (1.8.10)
|
29
52
|
concurrent-ruby (~> 1.0)
|
30
|
-
lino (1.
|
53
|
+
lino (1.9.0)
|
31
54
|
hamster (~> 3.0)
|
32
55
|
open4 (~> 1.3)
|
33
|
-
|
56
|
+
listen (3.5.1)
|
57
|
+
rb-fsevent (~> 0.10, >= 0.10.3)
|
58
|
+
rb-inotify (~> 0.9, >= 0.9.10)
|
59
|
+
lumberjack (1.2.8)
|
60
|
+
method_source (1.0.0)
|
61
|
+
minitest (5.14.4)
|
34
62
|
multipart-post (2.1.1)
|
35
|
-
|
63
|
+
nenv (0.3.0)
|
64
|
+
notiffany (0.1.3)
|
65
|
+
nenv (~> 0.1)
|
66
|
+
shellany (~> 0.0)
|
67
|
+
octokit (4.20.0)
|
36
68
|
faraday (>= 0.9)
|
37
69
|
sawyer (~> 0.8.0, >= 0.5.3)
|
38
70
|
open4 (1.3.4)
|
71
|
+
parallel (1.20.1)
|
72
|
+
parser (3.0.0.0)
|
73
|
+
ast (~> 2.4.1)
|
74
|
+
pry (0.14.0)
|
75
|
+
coderay (~> 1.1)
|
76
|
+
method_source (~> 1.0)
|
39
77
|
public_suffix (4.0.6)
|
40
|
-
|
41
|
-
|
78
|
+
rainbow (3.0.0)
|
79
|
+
rake (13.0.3)
|
80
|
+
rake_circle_ci (0.9.0)
|
42
81
|
colored2 (~> 3.1)
|
43
82
|
excon (~> 0.72)
|
44
83
|
rake_factory (~> 0.23)
|
45
84
|
sshkey (~> 2.0)
|
46
|
-
rake_factory (0.
|
85
|
+
rake_factory (0.29.0)
|
47
86
|
activesupport (>= 4)
|
48
87
|
rake (~> 13.0)
|
49
|
-
rake_github (0.
|
88
|
+
rake_github (0.7.0)
|
50
89
|
colored2 (~> 3.1)
|
51
90
|
octokit (~> 4.16)
|
52
91
|
rake_factory (~> 0.23)
|
53
92
|
sshkey (~> 2.0)
|
54
|
-
|
93
|
+
rake_gpg (0.14.0)
|
94
|
+
rake_factory (>= 0.23, < 1)
|
95
|
+
ruby_gpg2 (>= 0.6, < 1)
|
96
|
+
rake_ssh (0.6.0)
|
55
97
|
colored2 (~> 3.1)
|
56
98
|
rake_factory (~> 0.23)
|
57
99
|
sshkey (~> 2.0)
|
100
|
+
rb-fsevent (0.10.4)
|
101
|
+
rb-inotify (0.10.1)
|
102
|
+
ffi (~> 1.0)
|
103
|
+
regexp_parser (2.1.1)
|
104
|
+
rexml (3.2.4)
|
58
105
|
rspec (3.10.0)
|
59
106
|
rspec-core (~> 3.10.0)
|
60
107
|
rspec-expectations (~> 3.10.0)
|
61
108
|
rspec-mocks (~> 3.10.0)
|
62
|
-
rspec-core (3.10.
|
109
|
+
rspec-core (3.10.1)
|
63
110
|
rspec-support (~> 3.10.0)
|
64
|
-
rspec-expectations (3.10.
|
111
|
+
rspec-expectations (3.10.1)
|
65
112
|
diff-lcs (>= 1.2.0, < 2.0)
|
66
113
|
rspec-support (~> 3.10.0)
|
67
|
-
rspec-mocks (3.10.
|
114
|
+
rspec-mocks (3.10.2)
|
68
115
|
diff-lcs (>= 1.2.0, < 2.0)
|
69
116
|
rspec-support (~> 3.10.0)
|
70
|
-
rspec-support (3.10.
|
71
|
-
|
117
|
+
rspec-support (3.10.2)
|
118
|
+
rubocop (1.12.0)
|
119
|
+
parallel (~> 1.10)
|
120
|
+
parser (>= 3.0.0.0)
|
121
|
+
rainbow (>= 2.2.2, < 4.0)
|
122
|
+
regexp_parser (>= 1.8, < 3.0)
|
123
|
+
rexml
|
124
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
125
|
+
ruby-progressbar (~> 1.7)
|
126
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
127
|
+
rubocop-ast (1.4.1)
|
128
|
+
parser (>= 2.7.1.5)
|
129
|
+
rubocop-rspec (2.2.0)
|
130
|
+
rubocop (~> 1.0)
|
131
|
+
rubocop-ast (>= 1.1.0)
|
132
|
+
ruby-progressbar (1.11.0)
|
133
|
+
ruby2_keywords (0.0.4)
|
134
|
+
ruby_gpg2 (0.8.0)
|
135
|
+
lino (>= 1.5)
|
72
136
|
sawyer (0.8.2)
|
73
137
|
addressable (>= 2.3.5)
|
74
138
|
faraday (> 0.8, < 2.0)
|
139
|
+
shellany (0.0.1)
|
140
|
+
simplecov (0.21.2)
|
141
|
+
docile (~> 1.1)
|
142
|
+
simplecov-html (~> 0.11)
|
143
|
+
simplecov_json_formatter (~> 0.1)
|
144
|
+
simplecov-html (0.12.3)
|
145
|
+
simplecov_json_formatter (0.1.2)
|
75
146
|
sshkey (2.0.0)
|
76
|
-
|
77
|
-
tzinfo (
|
78
|
-
|
79
|
-
|
147
|
+
thor (1.1.0)
|
148
|
+
tzinfo (2.0.4)
|
149
|
+
concurrent-ruby (~> 1.0)
|
150
|
+
unicode-display_width (2.0.0)
|
151
|
+
zeitwerk (2.4.2)
|
80
152
|
|
81
153
|
PLATFORMS
|
82
154
|
ruby
|
83
155
|
|
84
156
|
DEPENDENCIES
|
85
157
|
bundler (~> 2.0)
|
158
|
+
faker (~> 2.17)
|
86
159
|
gem-release (~> 2.1)
|
160
|
+
guard (~> 2.16)
|
161
|
+
guard-rspec (~> 4.7)
|
87
162
|
rake (~> 13.0)
|
88
|
-
rake_circle_ci (~> 0.
|
89
|
-
rake_github (~> 0.
|
90
|
-
|
163
|
+
rake_circle_ci (~> 0.9)
|
164
|
+
rake_github (~> 0.5)
|
165
|
+
rake_gpg (~> 0.12)
|
166
|
+
rake_ssh (~> 0.4)
|
91
167
|
rspec (~> 3.9)
|
168
|
+
rubocop (~> 1.12)
|
169
|
+
rubocop-rspec (~> 2.2)
|
92
170
|
ruby-terraform!
|
171
|
+
simplecov (~> 0.21)
|
93
172
|
|
94
173
|
BUNDLED WITH
|
95
|
-
2.
|
174
|
+
2.2.15
|
data/README.md
CHANGED
@@ -467,7 +467,7 @@ RubyTerraform.workspace(operation: 'delete', workspace: 'staging')
|
|
467
467
|
arguments:
|
468
468
|
* `directory`: the directory containing terraform configuration, the default is
|
469
469
|
the current path.
|
470
|
-
* `operation`: `list`, `select`, `new` or
|
470
|
+
* `operation`: `list`, `select`, `new` or `delete`. default `list`.
|
471
471
|
* `workspace`: Workspace name.
|
472
472
|
|
473
473
|
|
@@ -551,15 +551,35 @@ interactive input from the terminal.
|
|
551
551
|
|
552
552
|
## Development
|
553
553
|
|
554
|
-
|
555
|
-
run `rake spec` to run the tests. You can also run `bin/console` for an
|
556
|
-
interactive prompt that will allow you to experiment.
|
554
|
+
To install dependencies and run the build, run the pre-commit build:
|
557
555
|
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
556
|
+
```shell script
|
557
|
+
./go
|
558
|
+
```
|
559
|
+
|
560
|
+
This runs all unit tests and other checks including coverage and code linting /
|
561
|
+
formatting.
|
562
|
+
|
563
|
+
To run only the unit tests, including coverage:
|
564
|
+
|
565
|
+
```shell script
|
566
|
+
./go test:unit
|
567
|
+
```
|
568
|
+
|
569
|
+
To attempt to fix any code linting / formatting issues:
|
570
|
+
|
571
|
+
```shell script
|
572
|
+
./go library:fix
|
573
|
+
```
|
574
|
+
|
575
|
+
To check for code linting / formatting issues without fixing:
|
576
|
+
|
577
|
+
```shell script
|
578
|
+
./go library:check
|
579
|
+
```
|
580
|
+
|
581
|
+
You can also run `bin/console` for an interactive prompt that will allow you to
|
582
|
+
experiment.
|
563
583
|
|
564
584
|
### Managing CircleCI keys
|
565
585
|
|
data/Rakefile
CHANGED
@@ -2,78 +2,122 @@ require 'yaml'
|
|
2
2
|
require 'rake_circle_ci'
|
3
3
|
require 'rake_github'
|
4
4
|
require 'rake_ssh'
|
5
|
+
require 'rake_gpg'
|
6
|
+
require 'securerandom'
|
5
7
|
require 'rspec/core/rake_task'
|
8
|
+
require 'rubocop/rake_task'
|
6
9
|
|
7
|
-
task :
|
10
|
+
task default: [
|
11
|
+
#:'library:fix',
|
12
|
+
:'test:unit'
|
13
|
+
]
|
8
14
|
|
9
|
-
|
15
|
+
namespace :encryption do
|
16
|
+
namespace :passphrase do
|
17
|
+
task :generate do
|
18
|
+
File.open('config/secrets/ci/encryption.passphrase', 'w') do |f|
|
19
|
+
f.write(SecureRandom.base64(36))
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
namespace :keys do
|
26
|
+
namespace :deploy do
|
27
|
+
RakeSSH.define_key_tasks(
|
28
|
+
path: 'config/secrets/ci/',
|
29
|
+
comment: 'maintainers@infrablocks.io'
|
30
|
+
)
|
31
|
+
end
|
32
|
+
|
33
|
+
namespace :gpg do
|
34
|
+
RakeGPG.define_generate_key_task(
|
35
|
+
output_directory: 'config/secrets/ci',
|
36
|
+
name_prefix: 'gpg',
|
37
|
+
owner_name: 'InfraBlocks Maintainers',
|
38
|
+
owner_email: 'maintainers@infrablocks.io',
|
39
|
+
owner_comment: 'ruby_terraform CI Key'
|
40
|
+
)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
RuboCop::RakeTask.new
|
45
|
+
|
46
|
+
namespace :library do
|
47
|
+
desc 'Run all checks of the library'
|
48
|
+
task check: [:rubocop]
|
10
49
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
50
|
+
desc 'Attempt to automatically fix issues with the library'
|
51
|
+
task fix: [:'rubocop:auto_correct']
|
52
|
+
end
|
53
|
+
|
54
|
+
namespace :test do
|
55
|
+
RSpec::Core::RakeTask.new(:unit)
|
56
|
+
end
|
16
57
|
|
17
58
|
RakeCircleCI.define_project_tasks(
|
18
|
-
|
19
|
-
|
59
|
+
namespace: :circle_ci,
|
60
|
+
project_slug: 'github/infrablocks/ruby_terraform'
|
20
61
|
) do |t|
|
21
62
|
circle_ci_config =
|
22
|
-
|
63
|
+
YAML.load_file('config/secrets/circle_ci/config.yaml')
|
23
64
|
|
24
|
-
t.api_token = circle_ci_config[
|
65
|
+
t.api_token = circle_ci_config['circle_ci_api_token']
|
25
66
|
t.environment_variables = {
|
26
|
-
|
27
|
-
|
28
|
-
|
67
|
+
ENCRYPTION_PASSPHRASE:
|
68
|
+
File.read('config/secrets/ci/encryption.passphrase')
|
69
|
+
.chomp
|
29
70
|
}
|
71
|
+
t.checkout_keys = []
|
30
72
|
t.ssh_keys = [
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
73
|
+
{
|
74
|
+
hostname: 'github.com',
|
75
|
+
private_key: File.read('config/secrets/ci/ssh.private')
|
76
|
+
}
|
35
77
|
]
|
36
78
|
end
|
37
79
|
|
38
80
|
RakeGithub.define_repository_tasks(
|
39
|
-
|
40
|
-
|
81
|
+
namespace: :github,
|
82
|
+
repository: 'infrablocks/ruby_terraform'
|
41
83
|
) do |t|
|
42
84
|
github_config =
|
43
|
-
|
85
|
+
YAML.load_file('config/secrets/github/config.yaml')
|
44
86
|
|
45
|
-
t.access_token = github_config[
|
87
|
+
t.access_token = github_config['github_personal_access_token']
|
46
88
|
t.deploy_keys = [
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
89
|
+
{
|
90
|
+
title: 'CircleCI',
|
91
|
+
public_key: File.read('config/secrets/ci/ssh.public')
|
92
|
+
}
|
51
93
|
]
|
52
94
|
end
|
53
95
|
|
54
96
|
namespace :pipeline do
|
55
|
-
task :
|
56
|
-
|
57
|
-
|
58
|
-
|
97
|
+
task prepare: %i[
|
98
|
+
circle_ci:project:follow
|
99
|
+
circle_ci:env_vars:ensure
|
100
|
+
circle_ci:checkout_keys:ensure
|
101
|
+
circle_ci:ssh_keys:ensure
|
102
|
+
github:deploy_keys:ensure
|
59
103
|
]
|
60
104
|
end
|
61
105
|
|
62
106
|
namespace :version do
|
63
|
-
desc
|
107
|
+
desc 'Bump version for specified type (pre, major, minor, patch)'
|
64
108
|
task :bump, [:type] do |_, args|
|
65
109
|
bump_version_for(args.type)
|
66
110
|
end
|
67
111
|
end
|
68
112
|
|
69
|
-
desc
|
113
|
+
desc 'Release gem'
|
70
114
|
task :release do
|
71
|
-
sh
|
115
|
+
sh 'gem release --tag --push'
|
72
116
|
end
|
73
117
|
|
74
118
|
def bump_version_for(version_type)
|
75
|
-
sh "gem bump --version #{version_type} "
|
76
|
-
|
77
|
-
|
78
|
-
|
119
|
+
sh "gem bump --version #{version_type} " \
|
120
|
+
'&& bundle install ' \
|
121
|
+
'&& export LAST_MESSAGE="$(git log -1 --pretty=%B)" ' \
|
122
|
+
'&& git commit -a --amend -m "${LAST_MESSAGE} [ci skip]"'
|
79
123
|
end
|
data/bin/console
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'ruby_terraform'
|
5
5
|
|
6
6
|
# You can add fixtures and/or initialization code here to make experimenting
|
7
7
|
# with your gem easier. You can also use a different console, if you like.
|
@@ -10,5 +10,5 @@ require "ruby_terraform"
|
|
10
10
|
# require "pry"
|
11
11
|
# Pry.start
|
12
12
|
|
13
|
-
require
|
13
|
+
require 'irb'
|
14
14
|
IRB.start(__FILE__)
|