ruby_fly 0.42.0.pre.2 → 0.42.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 +92 -83
- data/README.md +4 -4
- data/Rakefile +109 -46
- data/lib/ruby_fly/version.rb +1 -1
- data/ruby_fly.gemspec +2 -3
- metadata +10 -24
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 705e786967161a6b8474b9cca40b1900e96620bbf258edef8ce04b0e40f86040
|
|
4
|
+
data.tar.gz: d17b451140ca9c1cc6c93dc822728dd22f354ec992d7e0632a4022e8b1785037
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3ef6b8bc53a990da4d84db9a7aa72982efe56d4eb1b6b16cc19825fbe398026f859bccf45e85585d31cf3b7261698b13ac2de32c13a53b1556d24a53c93113de
|
|
7
|
+
data.tar.gz: 6c43655cd452530902887eaf696e24df9e521207651dd236f54d028c41df7c46216d2cc596e0f31d0d7be18e77402b7822a10b82c06e6ab575f7e4e69fceb0ea
|
data/Gemfile.lock
CHANGED
|
@@ -1,58 +1,66 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
ruby_fly (0.42.0.pre.
|
|
4
|
+
ruby_fly (0.42.0.pre.3)
|
|
5
5
|
lino (>= 4.1)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
activesupport (
|
|
10
|
+
activesupport (8.1.3)
|
|
11
11
|
base64
|
|
12
12
|
bigdecimal
|
|
13
|
-
concurrent-ruby (~> 1.0, >= 1.
|
|
13
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
14
14
|
connection_pool (>= 2.2.5)
|
|
15
15
|
drb
|
|
16
16
|
i18n (>= 1.6, < 2)
|
|
17
|
+
json
|
|
18
|
+
logger (>= 1.4.2)
|
|
17
19
|
minitest (>= 5.1)
|
|
18
|
-
|
|
19
|
-
tzinfo (~> 2.0)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
securerandom (>= 0.3)
|
|
21
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
|
22
|
+
uri (>= 0.13.1)
|
|
23
|
+
addressable (2.9.0)
|
|
24
|
+
public_suffix (>= 2.0.2, < 8.0)
|
|
25
|
+
ast (2.4.3)
|
|
26
|
+
base64 (0.3.0)
|
|
27
|
+
bigdecimal (4.1.2)
|
|
25
28
|
childprocess (5.0.0)
|
|
26
29
|
coderay (1.1.3)
|
|
27
30
|
colored2 (3.1.2)
|
|
28
|
-
concurrent-ruby (1.3.
|
|
29
|
-
connection_pool (
|
|
30
|
-
diff-lcs (1.
|
|
31
|
+
concurrent-ruby (1.3.8)
|
|
32
|
+
connection_pool (3.0.2)
|
|
33
|
+
diff-lcs (1.6.2)
|
|
31
34
|
docile (1.4.0)
|
|
32
|
-
drb (2.2.
|
|
33
|
-
excon (
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
drb (2.2.3)
|
|
36
|
+
excon (1.6.0)
|
|
37
|
+
logger
|
|
38
|
+
fakefs (3.0.0)
|
|
39
|
+
faker (3.5.1)
|
|
36
40
|
i18n (>= 1.8.11, < 2)
|
|
37
|
-
faraday (2.
|
|
38
|
-
faraday-net_http (>= 2.0, < 3.
|
|
41
|
+
faraday (2.14.3)
|
|
42
|
+
faraday-net_http (>= 2.0, < 3.5)
|
|
43
|
+
json
|
|
39
44
|
logger
|
|
40
|
-
faraday-net_http (3.
|
|
41
|
-
net-http
|
|
42
|
-
ffi (1.17.
|
|
43
|
-
ffi (1.17.
|
|
44
|
-
ffi (1.17.
|
|
45
|
+
faraday-net_http (3.4.4)
|
|
46
|
+
net-http (~> 0.5)
|
|
47
|
+
ffi (1.17.4)
|
|
48
|
+
ffi (1.17.4-arm64-darwin)
|
|
49
|
+
ffi (1.17.4-x86_64-darwin)
|
|
50
|
+
ffi (1.17.4-x86_64-linux-gnu)
|
|
45
51
|
formatador (1.1.0)
|
|
46
|
-
gem-release (2.2.
|
|
52
|
+
gem-release (2.2.4)
|
|
47
53
|
git (1.19.1)
|
|
48
54
|
addressable (~> 2.8)
|
|
49
55
|
rchardet (~> 1.8)
|
|
50
|
-
guard (2.
|
|
56
|
+
guard (2.19.1)
|
|
51
57
|
formatador (>= 0.2.4)
|
|
52
58
|
listen (>= 2.7, < 4.0)
|
|
59
|
+
logger (~> 1.6)
|
|
53
60
|
lumberjack (>= 1.0.12, < 2.0)
|
|
54
61
|
nenv (~> 0.1)
|
|
55
62
|
notiffany (~> 0.0)
|
|
63
|
+
ostruct (~> 0.6)
|
|
56
64
|
pry (>= 0.13.0)
|
|
57
65
|
shellany (~> 0.0)
|
|
58
66
|
thor (>= 0.18.1)
|
|
@@ -63,50 +71,46 @@ GEM
|
|
|
63
71
|
rspec (>= 2.99.0, < 4.0)
|
|
64
72
|
hamster (3.0.0)
|
|
65
73
|
concurrent-ruby (~> 1.0)
|
|
66
|
-
i18n (1.
|
|
74
|
+
i18n (1.15.2)
|
|
67
75
|
concurrent-ruby (~> 1.0)
|
|
68
|
-
immutable-struct (2.
|
|
69
|
-
json (2.
|
|
70
|
-
language_server-protocol (3.17.0.
|
|
76
|
+
immutable-struct (2.5.0)
|
|
77
|
+
json (2.12.2)
|
|
78
|
+
language_server-protocol (3.17.0.5)
|
|
71
79
|
lino (4.1.0)
|
|
72
80
|
childprocess (~> 5.0.0)
|
|
73
81
|
hamster (~> 3.0)
|
|
74
82
|
open4 (~> 1.3)
|
|
83
|
+
lint_roller (1.1.0)
|
|
75
84
|
listen (3.9.0)
|
|
76
85
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
77
86
|
rb-inotify (~> 0.9, >= 0.9.10)
|
|
78
|
-
logger (1.
|
|
87
|
+
logger (1.7.0)
|
|
79
88
|
lumberjack (1.2.10)
|
|
80
89
|
method_source (1.1.0)
|
|
81
|
-
minitest (5.
|
|
82
|
-
mutex_m (0.2.0)
|
|
90
|
+
minitest (5.27.0)
|
|
83
91
|
nenv (0.3.0)
|
|
84
|
-
net-http (0.
|
|
85
|
-
uri
|
|
92
|
+
net-http (0.9.1)
|
|
93
|
+
uri (>= 0.11.1)
|
|
86
94
|
notiffany (0.1.3)
|
|
87
95
|
nenv (~> 0.1)
|
|
88
96
|
shellany (~> 0.0)
|
|
89
|
-
octokit (
|
|
90
|
-
base64
|
|
97
|
+
octokit (10.0.0)
|
|
91
98
|
faraday (>= 1, < 3)
|
|
92
99
|
sawyer (~> 0.9)
|
|
93
100
|
open4 (1.3.4)
|
|
94
|
-
|
|
95
|
-
|
|
101
|
+
ostruct (0.6.1)
|
|
102
|
+
parallel (1.27.0)
|
|
103
|
+
parser (3.3.8.0)
|
|
96
104
|
ast (~> 2.4.1)
|
|
97
105
|
racc
|
|
98
|
-
|
|
106
|
+
prism (1.4.0)
|
|
107
|
+
pry (0.15.2)
|
|
99
108
|
coderay (~> 1.1)
|
|
100
109
|
method_source (~> 1.0)
|
|
101
|
-
public_suffix (
|
|
102
|
-
racc (1.8.
|
|
110
|
+
public_suffix (7.0.5)
|
|
111
|
+
racc (1.8.1)
|
|
103
112
|
rainbow (3.1.1)
|
|
104
|
-
rake (13.2
|
|
105
|
-
rake_circle_ci (0.11.0)
|
|
106
|
-
colored2 (~> 3.1)
|
|
107
|
-
excon (~> 0.72)
|
|
108
|
-
rake_factory (~> 0.23)
|
|
109
|
-
sshkey (~> 2.0)
|
|
113
|
+
rake (13.4.2)
|
|
110
114
|
rake_factory (0.33.0)
|
|
111
115
|
activesupport (>= 4)
|
|
112
116
|
rake (~> 13.0)
|
|
@@ -114,69 +118,74 @@ GEM
|
|
|
114
118
|
colored2 (~> 3.1)
|
|
115
119
|
git (~> 1.13, >= 1.13.2)
|
|
116
120
|
rake_factory (~> 0.33)
|
|
117
|
-
rake_git_crypt (0.
|
|
121
|
+
rake_git_crypt (0.4.0)
|
|
118
122
|
colored2 (~> 3.1)
|
|
123
|
+
lino (~> 4.1)
|
|
119
124
|
rake_factory (~> 0.33)
|
|
120
125
|
ruby_git_crypt (~> 0.1)
|
|
121
126
|
ruby_gpg2 (~> 0.12)
|
|
122
|
-
rake_github (0.
|
|
127
|
+
rake_github (0.17.0)
|
|
123
128
|
colored2 (~> 3.1)
|
|
124
|
-
octokit (>=
|
|
125
|
-
rake_factory (~> 0.
|
|
129
|
+
octokit (>= 7.0, < 11.0)
|
|
130
|
+
rake_factory (~> 0.33)
|
|
131
|
+
rbnacl (~> 7.1)
|
|
126
132
|
sshkey (~> 2.0)
|
|
127
133
|
rake_gpg (0.20.0)
|
|
128
134
|
rake_factory (~> 0.33)
|
|
129
135
|
ruby_gpg2 (~> 0.12)
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
rake_factory (~> 0.
|
|
133
|
-
sshkey (~> 2.0)
|
|
136
|
+
rake_slack (0.3.0)
|
|
137
|
+
excon (>= 0.72, < 2.0)
|
|
138
|
+
rake_factory (~> 0.33)
|
|
134
139
|
rb-fsevent (0.11.2)
|
|
135
140
|
rb-inotify (0.11.1)
|
|
136
141
|
ffi (~> 1.0)
|
|
142
|
+
rbnacl (7.1.2)
|
|
143
|
+
ffi (~> 1)
|
|
137
144
|
rchardet (1.8.0)
|
|
138
|
-
regexp_parser (2.
|
|
139
|
-
|
|
140
|
-
strscan
|
|
141
|
-
rspec (3.13.0)
|
|
145
|
+
regexp_parser (2.10.0)
|
|
146
|
+
rspec (3.13.1)
|
|
142
147
|
rspec-core (~> 3.13.0)
|
|
143
148
|
rspec-expectations (~> 3.13.0)
|
|
144
149
|
rspec-mocks (~> 3.13.0)
|
|
145
|
-
rspec-core (3.13.
|
|
150
|
+
rspec-core (3.13.4)
|
|
146
151
|
rspec-support (~> 3.13.0)
|
|
147
|
-
rspec-expectations (3.13.
|
|
152
|
+
rspec-expectations (3.13.5)
|
|
148
153
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
149
154
|
rspec-support (~> 3.13.0)
|
|
150
|
-
rspec-mocks (3.13.
|
|
155
|
+
rspec-mocks (3.13.5)
|
|
151
156
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
152
157
|
rspec-support (~> 3.13.0)
|
|
153
|
-
rspec-support (3.13.
|
|
154
|
-
rubocop (1.
|
|
158
|
+
rspec-support (3.13.4)
|
|
159
|
+
rubocop (1.76.0)
|
|
155
160
|
json (~> 2.3)
|
|
156
|
-
language_server-protocol (
|
|
161
|
+
language_server-protocol (~> 3.17.0.2)
|
|
162
|
+
lint_roller (~> 1.1.0)
|
|
157
163
|
parallel (~> 1.10)
|
|
158
164
|
parser (>= 3.3.0.2)
|
|
159
165
|
rainbow (>= 2.2.2, < 4.0)
|
|
160
|
-
regexp_parser (>= 2.
|
|
161
|
-
|
|
162
|
-
rubocop-ast (>= 1.31.1, < 2.0)
|
|
166
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
|
167
|
+
rubocop-ast (>= 1.45.0, < 2.0)
|
|
163
168
|
ruby-progressbar (~> 1.7)
|
|
164
|
-
unicode-display_width (>= 2.4.0, <
|
|
165
|
-
rubocop-ast (1.
|
|
166
|
-
parser (>= 3.3.
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
rubocop (
|
|
169
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
|
170
|
+
rubocop-ast (1.45.0)
|
|
171
|
+
parser (>= 3.3.7.2)
|
|
172
|
+
prism (~> 1.4)
|
|
173
|
+
rubocop-rake (0.7.1)
|
|
174
|
+
lint_roller (~> 1.1)
|
|
175
|
+
rubocop (>= 1.72.1)
|
|
176
|
+
rubocop-rspec (3.6.0)
|
|
177
|
+
lint_roller (~> 1.1)
|
|
178
|
+
rubocop (~> 1.72, >= 1.72.1)
|
|
171
179
|
ruby-progressbar (1.13.0)
|
|
172
180
|
ruby_git_crypt (0.1.0)
|
|
173
181
|
immutable-struct (~> 2.4)
|
|
174
182
|
lino (>= 4.1)
|
|
175
183
|
ruby_gpg2 (0.12.0)
|
|
176
184
|
lino (>= 4.1)
|
|
177
|
-
sawyer (0.9.
|
|
185
|
+
sawyer (0.9.3)
|
|
178
186
|
addressable (>= 2.3.5)
|
|
179
187
|
faraday (>= 0.17.3, < 3)
|
|
188
|
+
securerandom (0.4.1)
|
|
180
189
|
shellany (0.0.1)
|
|
181
190
|
simplecov (0.22.0)
|
|
182
191
|
docile (~> 1.1)
|
|
@@ -185,13 +194,14 @@ GEM
|
|
|
185
194
|
simplecov-html (0.12.3)
|
|
186
195
|
simplecov_json_formatter (0.1.4)
|
|
187
196
|
sshkey (2.0.0)
|
|
188
|
-
strscan (3.1.0)
|
|
189
197
|
terminal-notifier-guard (1.7.0)
|
|
190
|
-
thor (1.3.
|
|
198
|
+
thor (1.3.2)
|
|
191
199
|
tzinfo (2.0.6)
|
|
192
200
|
concurrent-ruby (~> 1.0)
|
|
193
|
-
unicode-display_width (
|
|
194
|
-
|
|
201
|
+
unicode-display_width (3.1.4)
|
|
202
|
+
unicode-emoji (~> 4.0, >= 4.0.4)
|
|
203
|
+
unicode-emoji (4.0.4)
|
|
204
|
+
uri (1.1.1)
|
|
195
205
|
|
|
196
206
|
PLATFORMS
|
|
197
207
|
arm64-darwin-21
|
|
@@ -210,12 +220,11 @@ DEPENDENCIES
|
|
|
210
220
|
guard
|
|
211
221
|
guard-rspec
|
|
212
222
|
rake
|
|
213
|
-
rake_circle_ci
|
|
214
223
|
rake_git
|
|
215
224
|
rake_git_crypt
|
|
216
225
|
rake_github
|
|
217
226
|
rake_gpg
|
|
218
|
-
|
|
227
|
+
rake_slack
|
|
219
228
|
rspec
|
|
220
229
|
rubocop
|
|
221
230
|
rubocop-rake
|
data/README.md
CHANGED
|
@@ -136,16 +136,16 @@ release a new version, update the version number in `version.rb`, and then run
|
|
|
136
136
|
git commits and tags, and push the `.gem` file to
|
|
137
137
|
[rubygems.org](https://rubygems.org).
|
|
138
138
|
|
|
139
|
-
### Managing
|
|
139
|
+
### Managing CI keys
|
|
140
140
|
|
|
141
|
-
To encrypt a GPG key for use by
|
|
141
|
+
To encrypt a GPG key for use by CI:
|
|
142
142
|
|
|
143
143
|
```bash
|
|
144
144
|
openssl aes-256-cbc \
|
|
145
145
|
-e \
|
|
146
146
|
-md sha1 \
|
|
147
147
|
-in ./config/secrets/ci/gpg.private \
|
|
148
|
-
-out ./.
|
|
148
|
+
-out ./.github/gpg.private.enc \
|
|
149
149
|
-k "<passphrase>"
|
|
150
150
|
```
|
|
151
151
|
|
|
@@ -155,7 +155,7 @@ To check decryption is working correctly:
|
|
|
155
155
|
openssl aes-256-cbc \
|
|
156
156
|
-d \
|
|
157
157
|
-md sha1 \
|
|
158
|
-
-in ./.
|
|
158
|
+
-in ./.github/gpg.private.enc \
|
|
159
159
|
-k "<passphrase>"
|
|
160
160
|
```
|
|
161
161
|
|
data/Rakefile
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'rake_circle_ci'
|
|
4
3
|
require 'rake_git'
|
|
5
4
|
require 'rake_git_crypt'
|
|
6
5
|
require 'rake_github'
|
|
7
6
|
require 'rake_gpg'
|
|
8
|
-
require '
|
|
7
|
+
require 'rake_slack'
|
|
9
8
|
require 'rspec/core/rake_task'
|
|
10
9
|
require 'rubocop/rake_task'
|
|
11
10
|
require 'securerandom'
|
|
12
|
-
require 'yaml'
|
|
13
11
|
|
|
14
12
|
task default: %i[
|
|
15
13
|
library:fix
|
|
@@ -59,13 +57,6 @@ namespace :encryption do
|
|
|
59
57
|
end
|
|
60
58
|
|
|
61
59
|
namespace :keys do
|
|
62
|
-
namespace :deploy do
|
|
63
|
-
RakeSSH.define_key_tasks(
|
|
64
|
-
path: 'config/secrets/ci/',
|
|
65
|
-
comment: 'maintainers@infrablocks.io'
|
|
66
|
-
)
|
|
67
|
-
end
|
|
68
|
-
|
|
69
60
|
namespace :gpg do
|
|
70
61
|
RakeGPG.define_generate_key_task(
|
|
71
62
|
output_directory: 'config/secrets/ci',
|
|
@@ -91,7 +82,6 @@ namespace :secrets do
|
|
|
91
82
|
desc 'Generate all generatable secrets.'
|
|
92
83
|
task generate: %w[
|
|
93
84
|
encryption:passphrase:generate
|
|
94
|
-
keys:deploy:generate
|
|
95
85
|
keys:gpg:generate
|
|
96
86
|
]
|
|
97
87
|
|
|
@@ -115,57 +105,98 @@ namespace :library do
|
|
|
115
105
|
|
|
116
106
|
desc 'Attempt to automatically fix issues with the library'
|
|
117
107
|
task fix: [:'rubocop:autocorrect_all']
|
|
108
|
+
|
|
109
|
+
desc 'Build the library'
|
|
110
|
+
task :build do
|
|
111
|
+
sh 'gem build ruby_fly.gemspec'
|
|
112
|
+
end
|
|
118
113
|
end
|
|
119
114
|
|
|
120
115
|
namespace :test do
|
|
121
116
|
RSpec::Core::RakeTask.new(:unit)
|
|
122
117
|
end
|
|
123
118
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
119
|
+
namespace :slack do
|
|
120
|
+
RakeSlack.define_notification_tasks do |t|
|
|
121
|
+
t.bot_token = ENV.fetch('SLACK_BOT_TOKEN', nil)
|
|
122
|
+
t.routing_rules = [
|
|
123
|
+
{ when: { type: 'on_hold' },
|
|
124
|
+
channel: 'C038EDCRSQJ', format: :on_hold }, # release
|
|
125
|
+
{ when: { actor: 'dependabot[bot]', outcome: 'success' },
|
|
126
|
+
channel: 'C03N711HVDG', format: :success }, # builds-dependabot
|
|
127
|
+
{ when: { actor: 'dependabot[bot]' },
|
|
128
|
+
channel: 'C03N711HVDG', format: :failure }, # builds-dependabot
|
|
129
|
+
{ when: { outcome: 'success' },
|
|
130
|
+
channel: 'C023XUE76GH', format: :success }, # builds
|
|
131
|
+
# Failures go to builds, not team-dev (org default), to keep noise
|
|
132
|
+
# out of a popular channel while this pipeline beds in.
|
|
133
|
+
{ when: {},
|
|
134
|
+
channel: 'C023XUE76GH', format: :failure } # builds
|
|
135
|
+
]
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
namespace :repository do
|
|
140
|
+
desc 'Set the git author for CI'
|
|
141
|
+
task :set_ci_author do
|
|
142
|
+
sh 'git config --global user.name "InfraBlocks CI"'
|
|
143
|
+
sh 'git config --global user.email "ci@infrablocks.io"'
|
|
144
|
+
end
|
|
144
145
|
end
|
|
145
146
|
|
|
146
|
-
RakeGithub.define_repository_tasks(
|
|
147
|
+
RakeGithub.define_repository_tasks( # rubocop:disable Metrics/BlockLength
|
|
147
148
|
namespace: :github,
|
|
148
149
|
repository: 'infrablocks/ruby_fly'
|
|
149
150
|
) do |t|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
151
|
+
# Operator's ambient auth. Resolve once and fail fast: a missing,
|
|
152
|
+
# unauthenticated, or absent gh yields an empty string, which would
|
|
153
|
+
# otherwise surface later as an opaque Octokit 401. An empty or
|
|
154
|
+
# whitespace-only GITHUB_TOKEN is treated as absent so an authenticated
|
|
155
|
+
# operator falls through to `gh auth token` rather than hitting the raise.
|
|
156
|
+
github_token = ENV['GITHUB_TOKEN'].to_s.strip
|
|
157
|
+
if github_token.empty?
|
|
158
|
+
github_token = begin
|
|
159
|
+
`gh auth token`
|
|
160
|
+
rescue Errno::ENOENT
|
|
161
|
+
''
|
|
162
|
+
end.strip
|
|
163
|
+
end
|
|
164
|
+
if github_token.empty?
|
|
165
|
+
raise 'No GitHub token available: set GITHUB_TOKEN or run `gh auth login`'
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
t.access_token = github_token
|
|
169
|
+
|
|
170
|
+
# Actions store only: dependabot runs never reach the passphrase — the
|
|
171
|
+
# only pr.yaml job that unlocks git-crypt (prerelease) is guarded to
|
|
172
|
+
# same-repo human PRs. Guard against a locked clone: without
|
|
173
|
+
# it, File.read returns git-crypt ciphertext and github:secrets:ensure
|
|
174
|
+
# silently uploads garbage that only surfaces much later as an opaque
|
|
175
|
+
# GPG unlock failure in the release job.
|
|
176
|
+
passphrase_path = 'config/secrets/ci/encryption.passphrase'
|
|
177
|
+
unless File.exist?(passphrase_path)
|
|
178
|
+
raise "Passphrase file not found: #{passphrase_path} — expected a " \
|
|
179
|
+
'git-crypt-unlocked clone with the CI secrets present'
|
|
180
|
+
end
|
|
181
|
+
passphrase = File.binread(passphrase_path)
|
|
182
|
+
if passphrase.start_with?("\x00GITCRYPT")
|
|
183
|
+
raise 'encryption.passphrase is git-crypt ciphertext — unlock the ' \
|
|
184
|
+
'clone before provisioning'
|
|
185
|
+
end
|
|
186
|
+
t.secrets = [
|
|
187
|
+
{ name: 'ENCRYPTION_PASSPHRASE', value: passphrase.chomp }
|
|
188
|
+
]
|
|
189
|
+
t.environments = [
|
|
190
|
+
{ name: 'release',
|
|
191
|
+
reviewers: [{ team: 'maintainers' }] }
|
|
159
192
|
]
|
|
160
193
|
end
|
|
161
194
|
|
|
162
195
|
namespace :pipeline do
|
|
163
|
-
desc 'Prepare
|
|
196
|
+
desc 'Prepare GitHub Actions pipeline'
|
|
164
197
|
task prepare: %i[
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
circle_ci:ssh_keys:ensure
|
|
168
|
-
github:deploy_keys:ensure
|
|
198
|
+
github:secrets:ensure
|
|
199
|
+
github:environments:ensure
|
|
169
200
|
]
|
|
170
201
|
end
|
|
171
202
|
|
|
@@ -176,6 +207,38 @@ namespace :version do
|
|
|
176
207
|
end
|
|
177
208
|
end
|
|
178
209
|
|
|
210
|
+
namespace :prerelease do
|
|
211
|
+
desc 'Build and push a namespaced pre-release to RubyGems ' \
|
|
212
|
+
'(PR CI only; no bump, no tag, no commit, no push)'
|
|
213
|
+
task :publish, %i[pr_number run_number run_attempt] do |_, args|
|
|
214
|
+
%i[pr_number run_number run_attempt].each do |name|
|
|
215
|
+
raise "Missing task argument: #{name}" if args[name].to_s.empty?
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
version_file = 'lib/ruby_fly/version.rb'
|
|
219
|
+
version_pattern = /(VERSION\s*=\s*')([^']+)(')/
|
|
220
|
+
source = File.read(version_file)
|
|
221
|
+
base = source[version_pattern, 2]
|
|
222
|
+
raise "Could not read VERSION from #{version_file}" unless base
|
|
223
|
+
|
|
224
|
+
version = "#{base}.pr#{args.pr_number}" \
|
|
225
|
+
".#{args.run_number}.#{args.run_attempt}"
|
|
226
|
+
gem_file = "ruby_fly-#{version}.gem"
|
|
227
|
+
begin
|
|
228
|
+
File.write(version_file,
|
|
229
|
+
source.sub(version_pattern, "\\1#{version}\\3"))
|
|
230
|
+
# Build + push directly: `gem release` aborts on the (deliberately)
|
|
231
|
+
# uncommitted version rewrite. PR CI must not tag, commit, or push
|
|
232
|
+
# (contrast the `release` task).
|
|
233
|
+
sh 'gem build ruby_fly.gemspec'
|
|
234
|
+
sh "gem push #{gem_file}"
|
|
235
|
+
ensure
|
|
236
|
+
File.write(version_file, source)
|
|
237
|
+
rm_f gem_file
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
|
|
179
242
|
desc 'Release gem'
|
|
180
243
|
task :release do
|
|
181
244
|
sh 'gem release --tag --push'
|
data/lib/ruby_fly/version.rb
CHANGED
data/ruby_fly.gemspec
CHANGED
|
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
|
|
|
34
34
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
35
35
|
spec.require_paths = ['lib']
|
|
36
36
|
|
|
37
|
-
spec.required_ruby_version = '>= 3.
|
|
37
|
+
spec.required_ruby_version = '>= 3.3'
|
|
38
38
|
|
|
39
39
|
spec.add_dependency 'lino', '>= 4.1'
|
|
40
40
|
|
|
@@ -45,12 +45,11 @@ Gem::Specification.new do |spec|
|
|
|
45
45
|
spec.add_development_dependency 'guard'
|
|
46
46
|
spec.add_development_dependency 'guard-rspec'
|
|
47
47
|
spec.add_development_dependency 'rake'
|
|
48
|
-
spec.add_development_dependency 'rake_circle_ci'
|
|
49
48
|
spec.add_development_dependency 'rake_git'
|
|
50
49
|
spec.add_development_dependency 'rake_git_crypt'
|
|
51
50
|
spec.add_development_dependency 'rake_github'
|
|
52
51
|
spec.add_development_dependency 'rake_gpg'
|
|
53
|
-
spec.add_development_dependency '
|
|
52
|
+
spec.add_development_dependency 'rake_slack'
|
|
54
53
|
spec.add_development_dependency 'rspec'
|
|
55
54
|
spec.add_development_dependency 'rubocop'
|
|
56
55
|
spec.add_development_dependency 'rubocop-rake'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ruby_fly
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.42.0.pre.
|
|
4
|
+
version: 0.42.0.pre.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- InfraBlocks Maintainers
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-07-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: lino
|
|
@@ -122,20 +122,6 @@ dependencies:
|
|
|
122
122
|
- - ">="
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '0'
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: rake_circle_ci
|
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
|
128
|
-
requirements:
|
|
129
|
-
- - ">="
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: '0'
|
|
132
|
-
type: :development
|
|
133
|
-
prerelease: false
|
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
-
requirements:
|
|
136
|
-
- - ">="
|
|
137
|
-
- !ruby/object:Gem::Version
|
|
138
|
-
version: '0'
|
|
139
125
|
- !ruby/object:Gem::Dependency
|
|
140
126
|
name: rake_git
|
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -193,7 +179,7 @@ dependencies:
|
|
|
193
179
|
- !ruby/object:Gem::Version
|
|
194
180
|
version: '0'
|
|
195
181
|
- !ruby/object:Gem::Dependency
|
|
196
|
-
name:
|
|
182
|
+
name: rake_slack
|
|
197
183
|
requirement: !ruby/object:Gem::Requirement
|
|
198
184
|
requirements:
|
|
199
185
|
- - ">="
|
|
@@ -326,7 +312,7 @@ licenses:
|
|
|
326
312
|
- MIT
|
|
327
313
|
metadata:
|
|
328
314
|
rubygems_mfa_required: 'false'
|
|
329
|
-
post_install_message:
|
|
315
|
+
post_install_message:
|
|
330
316
|
rdoc_options: []
|
|
331
317
|
require_paths:
|
|
332
318
|
- lib
|
|
@@ -334,15 +320,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
334
320
|
requirements:
|
|
335
321
|
- - ">="
|
|
336
322
|
- !ruby/object:Gem::Version
|
|
337
|
-
version: '3.
|
|
323
|
+
version: '3.3'
|
|
338
324
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
339
325
|
requirements:
|
|
340
|
-
- - "
|
|
326
|
+
- - ">="
|
|
341
327
|
- !ruby/object:Gem::Version
|
|
342
|
-
version:
|
|
328
|
+
version: '0'
|
|
343
329
|
requirements: []
|
|
344
|
-
rubygems_version: 3.
|
|
345
|
-
signing_key:
|
|
330
|
+
rubygems_version: 3.5.22
|
|
331
|
+
signing_key:
|
|
346
332
|
specification_version: 4
|
|
347
333
|
summary: A simple Ruby wrapper for invoking fly commands.
|
|
348
334
|
test_files: []
|