rake_fly 1.13.0 → 2.0.0.pre.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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +44 -34
  3. data/Rakefile +31 -5
  4. data/lib/rake_fly/task_sets/pipeline.rb +17 -15
  5. data/lib/rake_fly/tasks.rb +4 -4
  6. data/lib/rake_fly/tasks/pipeline/get.rb +33 -0
  7. data/lib/rake_fly/tasks/pipeline/push.rb +35 -0
  8. data/lib/rake_fly/tasks/pipeline/set.rb +44 -0
  9. data/lib/rake_fly/tasks/pipeline/unpause.rb +35 -0
  10. data/lib/rake_fly/version.rb +1 -1
  11. metadata +32 -46
  12. data/.circleci/config.yml +0 -56
  13. data/.circleci/gpg.private.enc +0 -0
  14. data/.envrc +0 -5
  15. data/.git-crypt/.gitattributes +0 -4
  16. data/.git-crypt/keys/default/0/41D2606F66C3FF28874362B61A16916844CE9D82.gpg +0 -0
  17. data/.git-crypt/keys/default/0/AAE932B730C2BA697FFDFAE05DA390873E38358B.gpg +0 -0
  18. data/.gitattributes +0 -1
  19. data/.gitignore +0 -32
  20. data/.rspec +0 -2
  21. data/.ruby-version +0 -1
  22. data/config/secrets/.unlocked +0 -1
  23. data/config/secrets/ci/encryption.passphrase +0 -1
  24. data/config/secrets/ci/gpg.private +0 -58
  25. data/config/secrets/ci/gpg.public +0 -31
  26. data/config/secrets/ci/ssh.private +0 -51
  27. data/config/secrets/ci/ssh.public +0 -1
  28. data/config/secrets/circle_ci/config.yaml +0 -2
  29. data/config/secrets/github/config.yaml +0 -2
  30. data/config/secrets/rubygems/credentials +0 -2
  31. data/go +0 -56
  32. data/lib/rake_fly/tasks/get_pipeline.rb +0 -31
  33. data/lib/rake_fly/tasks/push_pipeline.rb +0 -34
  34. data/lib/rake_fly/tasks/set_pipeline.rb +0 -40
  35. data/lib/rake_fly/tasks/unpause_pipeline.rb +0 -31
  36. data/rake_fly.gemspec +0 -43
  37. data/scripts/ci/common/configure-git.sh +0 -8
  38. data/scripts/ci/common/configure-rubygems.sh +0 -16
  39. data/scripts/ci/common/install-git-crypt.sh +0 -8
  40. data/scripts/ci/common/install-gpg-key.sh +0 -19
  41. data/scripts/ci/steps/prerelease.sh +0 -16
  42. data/scripts/ci/steps/release.sh +0 -18
  43. data/scripts/ci/steps/test.sh +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2d4ae001ad7c5f19bca6f73737fa38141db81b1fdfd81f4f2cf82a61f08296b3
4
- data.tar.gz: a0fd72392e21208d6454ec784f53374242ec33a9c466f6ce6e126d160a27afb1
3
+ metadata.gz: 6833139bfe6b492d3250ec7db54009a2a12adf0546bea2f41fa6bf152d6d7829
4
+ data.tar.gz: 245dc8182b2676ded02571eabfb44ce2b350d0e154d9355c11f944296bcb2657
5
5
  SHA512:
6
- metadata.gz: a6ffb3d83e2bd535a24392a88c547b6e7a4c1fd3812e2951c4c80383b9885ebc61d91cb403157aaa86e2006cc28890e86c9c6731149bef78ad6f7ecb8ee81974
7
- data.tar.gz: 94b4e0ad4d26a26633e414cca695424b5100dc55ac74853a12517384fb4fe3aa95ef7b06aad63ec91c2215816a34ec93f3f3ea8822df21c03170a2b2a5cfb2b9
6
+ metadata.gz: af314f9e92e7ed1e51e73b3d96e96bc82ccbd753d94a8e498b3e22b1908b1772412cd7960b43c98b006d227ad3d2b14a2a617bd0f7a3283293da24978e16d366
7
+ data.tar.gz: 077f960a221ece5642cc32d1a24714b3b74561324e0d64ed5bcd2ea95d3b090b7267ba6df9c50f8c98a56e6ec341fbea24acef75ad18dcf380b2c91d7416ecf3
@@ -1,68 +1,73 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rake_fly (1.13.0)
4
+ rake_fly (2.0.0.pre.pre.1)
5
5
  rake_dependencies (~> 2, < 3)
6
- rake_factory (>= 0.23, < 1)
7
- ruby_fly (>= 0.17)
6
+ rake_factory (>= 0.29, < 1)
7
+ ruby_fly (>= 0.19)
8
8
  semantic (~> 1.6.1)
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- activesupport (6.0.3.4)
13
+ activesupport (6.1.0)
14
14
  concurrent-ruby (~> 1.0, >= 1.0.2)
15
- i18n (>= 0.7, < 2)
16
- minitest (~> 5.1)
17
- tzinfo (~> 1.1)
18
- zeitwerk (~> 2.2, >= 2.2.2)
15
+ i18n (>= 1.6, < 2)
16
+ minitest (>= 5.1)
17
+ tzinfo (~> 2.0)
18
+ zeitwerk (~> 2.3)
19
19
  addressable (2.7.0)
20
20
  public_suffix (>= 2.0.2, < 5.0)
21
21
  colored2 (3.1.2)
22
22
  concurrent-ruby (1.1.7)
23
23
  diff-lcs (1.4.4)
24
- docile (1.3.2)
25
- excon (0.78.0)
24
+ docile (1.3.4)
25
+ excon (0.78.1)
26
26
  fakefs (0.20.1)
27
- faraday (1.1.0)
27
+ faraday (1.3.0)
28
+ faraday-net_http (~> 1.0)
28
29
  multipart-post (>= 1.2, < 3)
29
30
  ruby2_keywords
31
+ faraday-net_http (1.0.0)
30
32
  gem-release (2.2.0)
31
33
  hamster (3.0.0)
32
34
  concurrent-ruby (~> 1.0)
33
- i18n (1.8.5)
35
+ i18n (1.8.6)
34
36
  concurrent-ruby (~> 1.0)
35
- lino (1.5.0)
37
+ lino (1.7.0)
36
38
  hamster (~> 3.0)
37
39
  open4 (~> 1.3)
38
40
  minitar (0.9)
39
41
  minitest (5.14.2)
40
42
  multipart-post (2.1.1)
41
- octokit (4.19.0)
43
+ octokit (4.20.0)
42
44
  faraday (>= 0.9)
43
45
  sawyer (~> 0.8.0, >= 0.5.3)
44
46
  open4 (1.3.4)
45
47
  public_suffix (4.0.6)
46
- rake (13.0.1)
47
- rake_circle_ci (0.7.0)
48
+ rake (13.0.3)
49
+ rake_circle_ci (0.9.0)
48
50
  colored2 (~> 3.1)
49
51
  excon (~> 0.72)
50
52
  rake_factory (~> 0.23)
51
53
  sshkey (~> 2.0)
52
- rake_dependencies (2.5.0)
54
+ rake_dependencies (2.9.0)
53
55
  hamster (~> 3.0)
54
56
  minitar (~> 0.9)
55
57
  rake_factory (~> 0.23)
56
58
  rubyzip (>= 1.3)
57
- rake_factory (0.27.0)
59
+ rake_factory (0.29.0)
58
60
  activesupport (>= 4)
59
61
  rake (~> 13.0)
60
- rake_github (0.5.0)
62
+ rake_github (0.7.0)
61
63
  colored2 (~> 3.1)
62
64
  octokit (~> 4.16)
63
65
  rake_factory (~> 0.23)
64
66
  sshkey (~> 2.0)
65
- rake_ssh (0.4.0)
67
+ rake_gpg (0.14.0)
68
+ rake_factory (>= 0.23, < 1)
69
+ ruby_gpg2 (>= 0.6, < 1)
70
+ rake_ssh (0.6.0)
66
71
  colored2 (~> 3.1)
67
72
  rake_factory (~> 0.23)
68
73
  sshkey (~> 2.0)
@@ -70,35 +75,39 @@ GEM
70
75
  rspec-core (~> 3.10.0)
71
76
  rspec-expectations (~> 3.10.0)
72
77
  rspec-mocks (~> 3.10.0)
73
- rspec-core (3.10.0)
78
+ rspec-core (3.10.1)
74
79
  rspec-support (~> 3.10.0)
75
- rspec-expectations (3.10.0)
80
+ rspec-expectations (3.10.1)
76
81
  diff-lcs (>= 1.2.0, < 2.0)
77
82
  rspec-support (~> 3.10.0)
78
- rspec-mocks (3.10.0)
83
+ rspec-mocks (3.10.1)
79
84
  diff-lcs (>= 1.2.0, < 2.0)
80
85
  rspec-support (~> 3.10.0)
81
- rspec-support (3.10.0)
86
+ rspec-support (3.10.1)
82
87
  ruby2_keywords (0.0.2)
83
- ruby_fly (0.17.0)
88
+ ruby_fly (0.23.0)
89
+ lino (>= 1.5)
90
+ ruby_gpg2 (0.8.0)
84
91
  lino (>= 1.5)
85
92
  rubyzip (2.3.0)
86
93
  sawyer (0.8.2)
87
94
  addressable (>= 2.3.5)
88
95
  faraday (> 0.8, < 2.0)
89
96
  semantic (1.6.1)
90
- simplecov (0.19.1)
97
+ simplecov (0.21.0)
91
98
  docile (~> 1.1)
92
99
  simplecov-html (~> 0.11)
100
+ simplecov_json_formatter (~> 0.1)
93
101
  simplecov-html (0.12.3)
102
+ simplecov_json_formatter (0.1.2)
94
103
  sshkey (2.0.0)
95
- thread_safe (0.3.6)
96
- tzinfo (1.2.8)
97
- thread_safe (~> 0.1)
98
- zeitwerk (2.4.1)
104
+ tzinfo (2.0.4)
105
+ concurrent-ruby (~> 1.0)
106
+ zeitwerk (2.4.2)
99
107
 
100
108
  PLATFORMS
101
109
  ruby
110
+ x86_64-darwin-19
102
111
 
103
112
  DEPENDENCIES
104
113
  activesupport (>= 4)
@@ -106,12 +115,13 @@ DEPENDENCIES
106
115
  fakefs (~> 0.18)
107
116
  gem-release (~> 2.0)
108
117
  rake (~> 13.0)
109
- rake_circle_ci (~> 0.3)
118
+ rake_circle_ci (~> 0.9)
110
119
  rake_fly!
111
- rake_github (~> 0.3)
112
- rake_ssh (~> 0.2)
120
+ rake_github (~> 0.5)
121
+ rake_gpg (~> 0.12)
122
+ rake_ssh (~> 0.4)
113
123
  rspec (~> 3.9)
114
124
  simplecov (~> 0.16)
115
125
 
116
126
  BUNDLED WITH
117
- 2.1.4
127
+ 2.2.4
data/Rakefile CHANGED
@@ -2,17 +2,40 @@ 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'
6
8
 
7
9
  task :default => :spec
8
10
 
9
11
  RSpec::Core::RakeTask.new(:spec)
10
12
 
11
- RakeSSH.define_key_tasks(
12
- namespace: :deploy_key,
13
- path: 'config/secrets/ci/',
14
- comment: 'maintainers@infrablocks.io'
15
- )
13
+ namespace :encryption do
14
+ namespace :passphrase do
15
+ task :generate do
16
+ File.open('config/secrets/ci/encryption.passphrase', 'w') do |f|
17
+ f.write(SecureRandom.base64(36))
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ namespace :keys do
24
+ namespace :deploy do
25
+ RakeSSH.define_key_tasks(
26
+ path: 'config/secrets/ci/',
27
+ comment: 'maintainers@infrablocks.io')
28
+ end
29
+
30
+ namespace :gpg do
31
+ RakeGPG.define_generate_key_task(
32
+ output_directory: 'config/secrets/ci',
33
+ name_prefix: 'gpg',
34
+ owner_name: 'InfraBlocks Maintainers',
35
+ owner_email: 'maintainers@infrablocks.io',
36
+ owner_comment: 'rake_fly CI Key')
37
+ end
38
+ end
16
39
 
17
40
  RakeCircleCI.define_project_tasks(
18
41
  namespace: :circle_ci,
@@ -27,6 +50,7 @@ RakeCircleCI.define_project_tasks(
27
50
  File.read('config/secrets/ci/encryption.passphrase')
28
51
  .chomp
29
52
  }
53
+ t.checkout_keys = []
30
54
  t.ssh_keys = [
31
55
  {
32
56
  hostname: "github.com",
@@ -53,7 +77,9 @@ end
53
77
 
54
78
  namespace :pipeline do
55
79
  task :prepare => [
80
+ :'circle_ci:project:follow',
56
81
  :'circle_ci:env_vars:ensure',
82
+ :'circle_ci:checkout_keys:ensure',
57
83
  :'circle_ci:ssh_keys:ensure',
58
84
  :'github:deploy_keys:ensure'
59
85
  ]
@@ -1,8 +1,9 @@
1
1
  require 'rake_factory'
2
2
 
3
- require_relative '../tasks/get_pipeline'
4
- require_relative '../tasks/set_pipeline'
5
- require_relative '../tasks/unpause_pipeline'
3
+ require_relative '../tasks/pipeline/get'
4
+ require_relative '../tasks/pipeline/set'
5
+ require_relative '../tasks/pipeline/unpause'
6
+ require_relative '../tasks/pipeline/push'
6
7
 
7
8
  module RakeFly
8
9
  module TaskSets
@@ -10,6 +11,7 @@ module RakeFly
10
11
  parameter :argument_names, default: []
11
12
 
12
13
  parameter :target, :required => true
14
+ parameter :team
13
15
  parameter :pipeline, :required => true
14
16
  parameter :config, :required => true
15
17
 
@@ -17,26 +19,26 @@ module RakeFly
17
19
  parameter :var_files
18
20
  parameter :non_interactive
19
21
 
20
- parameter :get_pipeline_task_name, :default => :get_pipeline
21
- parameter :set_pipeline_task_name, :default => :set_pipeline
22
- parameter :unpause_pipeline_task_name, :default => :unpause_pipeline
23
- parameter :push_pipeline_task_name, :default => :push_pipeline
22
+ parameter :get_task_name, :default => :get
23
+ parameter :set_task_name, :default => :set
24
+ parameter :unpause_task_name, :default => :unpause
25
+ parameter :push_task_name, :default => :push
24
26
 
25
- task Tasks::GetPipeline,
27
+ task Tasks::Pipeline::Get,
26
28
  name: RakeFactory::DynamicValue.new { |ts|
27
- ts.get_pipeline_task_name
29
+ ts.get_task_name
28
30
  }
29
- task Tasks::SetPipeline,
31
+ task Tasks::Pipeline::Set,
30
32
  name: RakeFactory::DynamicValue.new { |ts|
31
- ts.set_pipeline_task_name
33
+ ts.set_task_name
32
34
  }
33
- task Tasks::UnpausePipeline,
35
+ task Tasks::Pipeline::Unpause,
34
36
  name: RakeFactory::DynamicValue.new { |ts|
35
- ts.unpause_pipeline_task_name
37
+ ts.unpause_task_name
36
38
  }
37
- task Tasks::PushPipeline,
39
+ task Tasks::Pipeline::Push,
38
40
  name: RakeFactory::DynamicValue.new { |ts|
39
- ts.push_pipeline_task_name
41
+ ts.push_task_name
40
42
  }
41
43
  end
42
44
  end
@@ -1,4 +1,4 @@
1
- require_relative 'tasks/get_pipeline'
2
- require_relative 'tasks/set_pipeline'
3
- require_relative 'tasks/unpause_pipeline'
4
- require_relative 'tasks/push_pipeline'
1
+ require_relative 'tasks/pipeline/get'
2
+ require_relative 'tasks/pipeline/set'
3
+ require_relative 'tasks/pipeline/unpause'
4
+ require_relative 'tasks/pipeline/push'
@@ -0,0 +1,33 @@
1
+ require 'ruby_fly'
2
+ require 'rake_factory'
3
+
4
+ module RakeFly
5
+ module Tasks
6
+ module Pipeline
7
+ class Get < RakeFactory::Task
8
+ default_name :get
9
+ default_prerequisites RakeFactory::DynamicValue.new { |t|
10
+ [t.ensure_task_name]
11
+ }
12
+ default_description RakeFactory::DynamicValue.new { |t|
13
+ pipeline = t.pipeline || '<derived>'
14
+ target = t.target || '<derived>'
15
+
16
+ "Get pipeline #{pipeline} for target #{target}"
17
+ }
18
+
19
+ parameter :target, :required => true
20
+ parameter :pipeline, :required => true
21
+
22
+ parameter :ensure_task_name, :default => :'fly:ensure'
23
+
24
+ action do |t|
25
+ puts "Getting pipeline #{t.pipeline} for target #{t.target}..."
26
+ RubyFly.get_pipeline(
27
+ target: t.target,
28
+ pipeline: t.pipeline)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,35 @@
1
+ require 'ruby_fly'
2
+ require 'rake_factory'
3
+
4
+ module RakeFly
5
+ module Tasks
6
+ module Pipeline
7
+ class Push < RakeFactory::Task
8
+ default_name :push
9
+ default_description RakeFactory::DynamicValue.new { |t|
10
+ pipeline = t.pipeline || '<derived>'
11
+ target = t.target || '<derived>'
12
+
13
+ "Push pipeline #{pipeline} to target #{target}"
14
+ }
15
+
16
+ parameter :target, :required => true
17
+ parameter :pipeline, :required => true
18
+
19
+ parameter :get_task_name, :default => :get
20
+ parameter :set_task_name, :default => :set
21
+ parameter :unpause_task_name, :default => :unpause
22
+
23
+ action do |t, args|
24
+ [
25
+ t.application[t.set_task_name, t.scope],
26
+ t.application[t.get_task_name, t.scope],
27
+ t.application[t.unpause_task_name, t.scope]
28
+ ].each do |task|
29
+ task.invoke(*args)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,44 @@
1
+ require 'ruby_fly'
2
+ require 'rake_factory'
3
+
4
+ module RakeFly
5
+ module Tasks
6
+ module Pipeline
7
+ class Set < RakeFactory::Task
8
+ default_name :set
9
+ default_prerequisites RakeFactory::DynamicValue.new { |t|
10
+ [t.ensure_task_name]
11
+ }
12
+ default_description RakeFactory::DynamicValue.new { |t|
13
+ pipeline = t.pipeline || '<derived>'
14
+ target = t.target || '<derived>'
15
+
16
+ "Set pipeline #{pipeline} for target #{target}"
17
+ }
18
+
19
+ parameter :target, :required => true
20
+ parameter :team
21
+ parameter :pipeline, :required => true
22
+ parameter :config, :required => true
23
+
24
+ parameter :vars
25
+ parameter :var_files
26
+ parameter :non_interactive
27
+
28
+ parameter :ensure_task_name, :default => :'fly:ensure'
29
+
30
+ action do |t|
31
+ puts "Setting pipeline #{t.pipeline} for target #{t.target}..."
32
+ RubyFly.set_pipeline(
33
+ target: t.target,
34
+ team: t.team,
35
+ pipeline: t.pipeline,
36
+ config: t.config,
37
+ vars: t.vars,
38
+ var_files: t.var_files,
39
+ non_interactive: t.non_interactive)
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,35 @@
1
+ require 'ruby_fly'
2
+ require 'rake_factory'
3
+
4
+ module RakeFly
5
+ module Tasks
6
+ module Pipeline
7
+ class Unpause < RakeFactory::Task
8
+ default_name :unpause
9
+ default_prerequisites RakeFactory::DynamicValue.new { |t|
10
+ [t.ensure_task_name]
11
+ }
12
+ default_description RakeFactory::DynamicValue.new { |t|
13
+ pipeline = t.pipeline || '<derived>'
14
+ target = t.target || '<derived>'
15
+
16
+ "Unpause pipeline #{pipeline} for target #{target}"
17
+ }
18
+
19
+ parameter :target, :required => true
20
+ parameter :team
21
+ parameter :pipeline, :required => true
22
+
23
+ parameter :ensure_task_name, :default => :'fly:ensure'
24
+
25
+ action do |t|
26
+ puts "Unpausing pipeline #{t.pipeline} for target #{t.target}..."
27
+ RubyFly.unpause_pipeline(
28
+ target: t.target,
29
+ team: t.team,
30
+ pipeline: t.pipeline)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end