Skip to content

Commit 7ab2330

Browse files
authored
chore: Migrate more rake tasks to toys (#980)
1 parent f01dc9a commit 7ab2330

21 files changed

Lines changed: 451 additions & 134 deletions

File tree

.github/workflows/ci-common.yml

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,24 @@ jobs:
1717
strategy:
1818
matrix:
1919
include:
20-
- os: ubuntu-latest
21-
ruby: "2.6"
2220
- os: ubuntu-latest
2321
ruby: "2.7"
22+
task: test
2423
- os: ubuntu-latest
2524
ruby: "3.0"
25+
task: test
2626
- os: ubuntu-latest
2727
ruby: "3.1"
28+
task: test
29+
- os: ubuntu-latest
30+
ruby: "3.2"
31+
task: ci
2832
- os: macos-latest
29-
ruby: "3.0"
33+
ruby: "3.2"
34+
task: test
3035
- os: windows-latest
31-
ruby: "3.0"
36+
ruby: "3.2"
37+
task: test
3238
fail-fast: false
3339
runs-on: ${{ matrix.os }}
3440
steps:
@@ -38,11 +44,12 @@ jobs:
3844
uses: ruby/setup-ruby@v1
3945
with:
4046
ruby-version: "${{ matrix.ruby }}"
41-
- name: Install tools
47+
- name: Install dependencies
4248
shell: bash
4349
run: |
44-
cd gapic-common && gem install --no-document toys bundler && bundle install
45-
- name: Test ${{ matrix.task }}
50+
gem install --no-document toys bundler
51+
cd gapic-common && bundle install
52+
- name: Run ${{ matrix.task }}
4653
shell: bash
4754
run: |
48-
cd gapic-common && bundle exec rake ci
55+
cd gapic-common && toys ${{ matrix.task }}

.github/workflows/ci.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- name: Install Ruby
2626
uses: ruby/setup-ruby@v1
2727
with:
28-
ruby-version: "2.6"
28+
ruby-version: "3.1"
2929
- name: Checkout repo
3030
uses: actions/checkout@v3
3131
- name: Checkout submodules
@@ -35,9 +35,8 @@ jobs:
3535
git submodule update --init --recursive
3636
- name: Install dependencies
3737
run: |
38-
gem install bundler
39-
bundle install --retry=3
40-
bundle exec rake bundle_install
38+
gem install --no-document toys bundler
39+
toys bundle install
4140
- name: Run CI
4241
run: |
43-
bundle exec rake ci
42+
toys ci --generator-only

.toys/.toys.rb

Lines changed: 19 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121
# with the current directory set to that directory, and also passing the
2222
# directory name to the block.
2323
#
24-
def in_directories_with_bundles
24+
def in_directories_with_bundles generator_only: false
25+
non_generator_directories = ["gapic", "gapic-common"]
2526
Dir.chdir context_directory do
2627
Dir.glob "*/Gemfile" do |gemfile|
2728
dir = File.dirname gemfile
29+
next if generator_only && non_generator_directories.include?(dir)
2830
Dir.chdir dir do
2931
yield dir
3032
end
@@ -89,13 +91,15 @@ def run
8991
tool "ci" do
9092
desc "Runs CI in all directories"
9193

94+
flag :generator_only
95+
9296
include :exec
9397
include :terminal
9498
include "repo_info"
9599

96100
def run
97101
failures = []
98-
in_directories_with_bundles do |dirname|
102+
in_directories_with_bundles generator_only: generator_only do |dirname|
99103
["test", "rubocop"].each do |task_name|
100104
if tool_defined? task_name
101105
puts "Running #{task_name} in #{dirname}", :cyan, :bold
@@ -117,59 +121,34 @@ def run
117121
end
118122

119123
tool "gen" do
120-
desc "Runs the generator for all goldens"
124+
desc "Regenerates output for goldens"
125+
126+
remaining_args :services
127+
flag :generator, "--generator=GENERATOR"
121128

122129
include :exec, e: true
123130
include :terminal
124-
include "repo_info"
125131

126132
def run
127-
in_directories_with_bundles do |dirname|
128-
next if dirname == "shared"
129-
puts "Generating in #{dirname}", :cyan, :bold
130-
exec ["bundle", "exec", "rake", "gen"]
131-
end
132-
end
133-
134-
["garbage", "showcase"].each do |name|
135-
tool name do
136-
desc "Runs the generator for #{name}"
137-
138-
include :exec, e: true
139-
static :name, name
140-
141-
def run
142-
Dir.chdir "#{context_directory}/gapic-generator" do
143-
exec ["bundle", "exec", "rake", "gen:#{name}"]
144-
end
145-
end
133+
Dir.chdir "#{context_directory}/shared" do
134+
cmd = ["gen"] + services + verbosity_flags
135+
cmd += ["--generator", generator] if generator
136+
exec_separate_tool cmd
146137
end
147138
end
148139
end
149140

150141
tool "bin" do
151-
desc "Generates binary input for all goldens"
142+
desc "Regenerates binary input for goldens"
143+
144+
remaining_args :services
152145

153146
include :exec, e: true
147+
include :terminal
154148

155149
def run
156150
Dir.chdir "#{context_directory}/shared" do
157-
exec ["bundle", "exec", "rake", "gen"]
158-
end
159-
end
160-
161-
["garbage", "showcase"].each do |name|
162-
tool name do
163-
desc "Generates binary input for #{name}"
164-
165-
include :exec, e: true
166-
static :name, name
167-
168-
def run
169-
Dir.chdir "#{context_directory}/shared" do
170-
exec ["bundle", "exec", "rake", "gen:#{name}"]
171-
end
172-
end
151+
exec_separate_tool ["bin"] + services + verbosity_flags
173152
end
174153
end
175154
end

gapic-common/.toys.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,24 @@
2121
t.files = ["test/**/*_test.rb"]
2222
t.bundler = true
2323
end
24+
25+
expand :yardoc do |t|
26+
t.generate_output_flag = true
27+
t.fail_on_warning = true
28+
t.fail_on_undocumented_objects = false # TODO: Fix so this can be enabled
29+
t.bundler = true
30+
end
31+
32+
tool "ci" do
33+
include :exec, e: true
34+
include :terminal
35+
36+
def run
37+
puts "Running rubocop...", :bold
38+
exec_tool ["rubocop"] + verbosity_flags
39+
puts "Running tests...", :bold
40+
exec_tool ["test"] + verbosity_flags
41+
puts "Running yard...", :bold
42+
exec_tool ["yardoc"] + verbosity_flags
43+
end
44+
end

gapic-generator-ads/.toys.rb

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,38 @@
2121
t.files = ["test/**/*_test.rb"]
2222
t.bundler = true
2323
end
24+
25+
tool "gen" do
26+
desc "Regenerates output for goldens"
27+
28+
remaining_args :services
29+
30+
include :exec, e: true
31+
include :terminal
32+
load File.join __dir__, "gem_defaults.rb"
33+
34+
def run
35+
set :services, all_service_names(generator: :ads) if services.empty?
36+
Dir.chdir "#{context_directory}/shared" do
37+
cmd = ["gen"] + services + verbosity_flags
38+
cmd += ["--generator", generator] if generator
39+
exec_separate_tool cmd
40+
end
41+
end
42+
end
43+
44+
tool "bin" do
45+
desc "Regenerates binary input for goldens"
46+
47+
remaining_args :services
48+
49+
include :exec, e: true
50+
include :terminal
51+
52+
def run
53+
set :services, all_service_names(generator: :ads) if services.empty?
54+
Dir.chdir "#{context_directory}/shared" do
55+
exec_separate_tool ["bin"] + services + verbosity_flags
56+
end
57+
end
58+
end

gapic-generator-ads/Gemfile.lock

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ GEM
3535
minitest (~> 5.1)
3636
tzinfo (~> 1.1)
3737
ast (2.4.2)
38+
base64 (0.1.1)
3839
builder (3.2.4)
3940
concurrent-ruby (1.2.2)
4041
crass (1.0.6)
@@ -50,11 +51,11 @@ GEM
5051
crass (~> 1.0.2)
5152
nokogiri (>= 1.12.0)
5253
middleware (0.1.0)
53-
mini_portile2 (2.8.2)
54-
minitest (5.18.1)
55-
minitest-focus (1.3.1)
54+
mini_portile2 (2.8.4)
55+
minitest (5.19.0)
56+
minitest-focus (1.4.0)
5657
minitest (>= 4, < 6)
57-
nokogiri (1.15.3)
58+
nokogiri (1.15.4)
5859
mini_portile2 (~> 2.8.2)
5960
racc (~> 1.4)
6061
parallel (1.23.0)
@@ -67,10 +68,10 @@ GEM
6768
thor
6869
thread_safe
6970
racc (1.7.1)
70-
rack (2.2.7)
71+
rack (2.2.8)
7172
rack-test (2.1.0)
7273
rack (>= 1.3)
73-
rails-dom-testing (2.1.1)
74+
rails-dom-testing (2.2.0)
7475
activesupport (>= 5.0.0)
7576
minitest
7677
nokogiri (>= 1.6)
@@ -80,16 +81,17 @@ GEM
8081
rainbow (3.1.1)
8182
rake (13.0.6)
8283
regexp_parser (2.8.1)
83-
rexml (3.2.5)
84-
rubocop (1.54.1)
84+
rexml (3.2.6)
85+
rubocop (1.56.2)
86+
base64 (~> 0.1.1)
8587
json (~> 2.3)
8688
language_server-protocol (>= 3.17.0)
8789
parallel (~> 1.10)
8890
parser (>= 3.2.2.3)
8991
rainbow (>= 2.2.2, < 4.0)
9092
regexp_parser (>= 1.8, < 3.0)
9193
rexml (>= 3.2.5, < 4.0)
92-
rubocop-ast (>= 1.28.0, < 2.0)
94+
rubocop-ast (>= 1.28.1, < 2.0)
9395
ruby-progressbar (~> 1.7)
9496
unicode-display_width (>= 2.4.0, < 3.0)
9597
rubocop-ast (1.29.0)

gapic-generator-cloud/.toys.rb

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,38 @@
2121
t.files = ["test/**/*_test.rb"]
2222
t.bundler = true
2323
end
24+
25+
tool "gen" do
26+
desc "Regenerates output for goldens"
27+
28+
remaining_args :services
29+
30+
include :exec, e: true
31+
include :terminal
32+
load File.join __dir__, "gem_defaults.rb"
33+
34+
def run
35+
set :services, all_service_names(generator: :cloud) if services.empty?
36+
Dir.chdir "#{context_directory}/shared" do
37+
cmd = ["gen"] + services + verbosity_flags
38+
cmd += ["--generator", generator] if generator
39+
exec_separate_tool cmd
40+
end
41+
end
42+
end
43+
44+
tool "bin" do
45+
desc "Regenerates binary input for goldens"
46+
47+
remaining_args :services
48+
49+
include :exec, e: true
50+
include :terminal
51+
52+
def run
53+
set :services, all_service_names(generator: :cloud) if services.empty?
54+
Dir.chdir "#{context_directory}/shared" do
55+
exec_separate_tool ["bin"] + services + verbosity_flags
56+
end
57+
end
58+
end

gapic-generator-cloud/Gemfile.lock

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ GEM
3636
minitest (~> 5.1)
3737
tzinfo (~> 1.1)
3838
ast (2.4.2)
39+
base64 (0.1.1)
3940
builder (3.2.4)
4041
coderay (1.1.3)
4142
concurrent-ruby (1.2.2)
@@ -53,16 +54,16 @@ GEM
5354
nokogiri (>= 1.12.0)
5455
method_source (1.0.0)
5556
middleware (0.1.0)
56-
mini_portile2 (2.8.2)
57-
minitest (5.18.1)
57+
mini_portile2 (2.8.4)
58+
minitest (5.19.0)
5859
minitest-autotest (1.1.1)
5960
minitest-server (~> 1.0)
6061
path_expander (~> 1.0)
61-
minitest-focus (1.3.1)
62+
minitest-focus (1.4.0)
6263
minitest (>= 4, < 6)
6364
minitest-server (1.0.7)
6465
minitest (~> 5.16)
65-
nokogiri (1.15.3)
66+
nokogiri (1.15.4)
6667
mini_portile2 (~> 2.8.2)
6768
racc (~> 1.4)
6869
parallel (1.23.0)
@@ -79,10 +80,10 @@ GEM
7980
coderay (~> 1.1)
8081
method_source (~> 1.0)
8182
racc (1.7.1)
82-
rack (2.2.7)
83+
rack (2.2.8)
8384
rack-test (2.1.0)
8485
rack (>= 1.3)
85-
rails-dom-testing (2.1.1)
86+
rails-dom-testing (2.2.0)
8687
activesupport (>= 5.0.0)
8788
minitest
8889
nokogiri (>= 1.6)
@@ -92,16 +93,17 @@ GEM
9293
rainbow (3.1.1)
9394
rake (13.0.6)
9495
regexp_parser (2.8.1)
95-
rexml (3.2.5)
96-
rubocop (1.54.1)
96+
rexml (3.2.6)
97+
rubocop (1.56.2)
98+
base64 (~> 0.1.1)
9799
json (~> 2.3)
98100
language_server-protocol (>= 3.17.0)
99101
parallel (~> 1.10)
100102
parser (>= 3.2.2.3)
101103
rainbow (>= 2.2.2, < 4.0)
102104
regexp_parser (>= 1.8, < 3.0)
103105
rexml (>= 3.2.5, < 4.0)
104-
rubocop-ast (>= 1.28.0, < 2.0)
106+
rubocop-ast (>= 1.28.1, < 2.0)
105107
ruby-progressbar (~> 1.7)
106108
unicode-display_width (>= 2.4.0, < 3.0)
107109
rubocop-ast (1.29.0)

0 commit comments

Comments
 (0)