rake_fly 1.13.0 → 2.0.0.pre.pre.1

Sign up to get free protection for your applications and to get access to all the features.
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