Skip to content

Commit c7f8095

Browse files
committed
[build] fix rake task arguments to allow variable number of values
want to allow passing along an arbitrary number of task arguments to bazel execution code was written as if the argument could be an array, this worked when calling #invoke, but not when calling from command line
1 parent 2c45d7c commit c7f8095

File tree

1 file changed

+54
-56
lines changed

1 file changed

+54
-56
lines changed

Rakefile

Lines changed: 54 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ task ios_driver: [
336336
# ./go java:package['--config=release']
337337
desc 'Create stamped zipped assets for Java for uploading to GitHub'
338338
task :'java-release-zip' do
339-
Rake::Task['java:package'].invoke(['--stamp'])
339+
Rake::Task['java:package'].invoke('--stamp')
340340
end
341341

342342
task 'release-java': %i[java-release-zip publish-maven]
@@ -478,8 +478,8 @@ namespace :node do
478478
end
479479

480480
desc 'Build Node npm package'
481-
task :build, [:args] do |_task, arguments|
482-
args = Array(arguments[:args]) || []
481+
task :build do |_task, arguments|
482+
args = arguments.to_a.compact
483483
Bazel.execute('build', args, '//javascript/node/selenium-webdriver')
484484
end
485485

@@ -488,8 +488,8 @@ namespace :node do
488488
end
489489

490490
desc 'Release Node npm package'
491-
task :release, [:args] do |_task, arguments|
492-
args = Array(arguments[:args] || ['--stamp'])
491+
task :release do |_task, arguments|
492+
args = arguments.to_a.compact.empty? ? ['--stamp'] : arguments.to_a.compact
493493
nightly = args.delete('nightly')
494494
Rake::Task['node:version'].invoke('nightly') if nightly
495495

@@ -545,15 +545,15 @@ def python_version
545545
end
546546
namespace :py do
547547
desc 'Build Python wheel and sdist with optional arguments'
548-
task :build, [:args] do |_task, arguments|
549-
args = Array(arguments[:args]) || []
548+
task :build do |_task, arguments|
549+
args = arguments.to_a.compact
550550
Bazel.execute('build', args, '//py:selenium-wheel')
551551
Bazel.execute('build', args, '//py:selenium-sdist')
552552
end
553553

554554
desc 'Release Python wheel and sdist to pypi'
555-
task :release, [:args] do |_task, arguments|
556-
args = Array(arguments[:args] || ['--stamp'])
555+
task :release, do |_task, arguments|
556+
args = arguments.to_a.compact.empty? ? ['--stamp'] : arguments.to_a.compact
557557
nightly = args.delete('nightly')
558558
Rake::Task['py:version'].invoke('nightly') if nightly
559559

@@ -705,15 +705,13 @@ def ruby_version
705705
end
706706
namespace :rb do
707707
desc 'Generate Ruby gems'
708-
task :build, [:args] do |_task, arguments|
709-
args = Array(arguments[:args])
710-
puts "args #{args}"
711-
webdriver = !args.delete('devtools')
712-
puts "wd #{webdriver}"
713-
devtools = !args.delete('webdriver')
714-
puts "cdp #{devtools}"
715-
Bazel.execute('build', args, '//rb:selenium-webdriver') if webdriver
716-
Bazel.execute('build', args, '//rb:selenium-devtools') if devtools
708+
task :build do |_task, arguments|
709+
args = arguments.to_a.compact
710+
webdriver = args.delete('webdriver')
711+
devtools = args.delete('devtools')
712+
713+
Bazel.execute('build', args, '//rb:selenium-webdriver') if (webdriver || !devtools)
714+
Bazel.execute('build', args, '//rb:selenium-devtools') if (devtools || !webdriver)
717715
end
718716

719717
desc 'Update generated Ruby files for local development'
@@ -724,8 +722,8 @@ namespace :rb do
724722
end
725723

726724
desc 'Push Ruby gems to rubygems'
727-
task :release, [:args] do |_task, arguments|
728-
args = Array(arguments[:args] || ['--stamp'])
725+
task :release do |_task, arguments|
726+
args = arguments.to_a.compact
729727
nightly = args.delete('nightly')
730728
wd_target = nightly ? '//rb:selenium-webdriver-release' : '//rb:selenium-webdriver-release-nightly'
731729
cdp_target = nightly ? '//rb:selenium-devtools-release' : '//rb:selenium-devtools-release-nightly'
@@ -767,8 +765,8 @@ namespace :rb do
767765
end
768766

769767
desc 'Update Ruby Syntax'
770-
task :lint, [:args] do |_task, arguments|
771-
args = Array(arguments[:args] || ['--stamp'])
768+
task :lint do |_task, arguments|
769+
args = arguments.to_a.compact
772770
Bazel.execute('run', args, '//rb:lint')
773771
end
774772
end
@@ -780,15 +778,15 @@ def dotnet_version
780778
end
781779
namespace :dotnet do
782780
desc 'Build nupkg files'
783-
task :build, [:args] do |_task, arguments|
784-
args = Array(arguments[:args]) || []
781+
task :build do |_task, arguments|
782+
args = arguments.to_a.compact
785783
Bazel.execute('build', args, '//dotnet:all')
786784
end
787785

788786
desc 'Package .NET bindings into zipped assets and stage for release'
789-
task :package, [:args] do |_task, arguments|
790-
args = Array(arguments[:args] || ['--stamp'])
791-
Rake::Task['dotnet:build'].invoke(args)
787+
task :package do |_task, arguments|
788+
args = arguments.to_a.compact.empty? ? ['--stamp'] : arguments.to_a.compact
789+
Rake::Task['dotnet:build'].invoke(*args)
792790
mkdir_p 'build/dist'
793791
FileUtils.rm_f(Dir.glob('build/dist/*dotnet*'))
794792

@@ -799,12 +797,12 @@ namespace :dotnet do
799797
end
800798

801799
desc 'Upload nupkg files to Nuget'
802-
task :release, [:args] do |_task, arguments|
803-
args = Array(arguments[:args] || ['--stamp'])
800+
task :release do |_task, arguments|
801+
args = arguments.to_a.compact.empty? ? ['--stamp'] : arguments.to_a.compact
804802
nightly = args.delete('nightly')
805803
Rake::Task['dotnet:version'].invoke('nightly') if nightly
806804

807-
Rake::Task['dotnet:package'].invoke(args)
805+
Rake::Task['dotnet:package'].invoke(*args)
808806

809807
release_version = dotnet_version
810808
api_key = ENV.fetch('NUGET_API_KEY', nil)
@@ -879,20 +877,20 @@ end
879877

880878
namespace :java do
881879
desc 'Build Java Client Jars'
882-
task :build, [:args] do |_task, arguments|
883-
args = Array(arguments[:args]) || []
880+
task :build do |_task, arguments|
881+
args = arguments.to_a.compact
884882
Bazel.execute('build', args, '//java/src/org/openqa/selenium:client-combined')
885883
end
886884

887885
desc 'Build Grid Jar'
888-
task :grid, [:args] do |_task, arguments|
889-
args = Array(arguments[:args]) || []
886+
task :grid do |_task, arguments|
887+
args = arguments.to_a.compact
890888
Bazel.execute('build', args, '//java/src/org/openqa/selenium/grid:grid')
891889
end
892890

893891
desc 'Package Java bindings and grid into releasable packages and stage for release'
894-
task :package, [:args] do |_task, arguments|
895-
args = Array(arguments[:args] || ['--stamp'])
892+
task :package do |_task, arguments|
893+
args = arguments.to_a.compact.empty? ? ['--stamp'] : arguments.to_a.compact
896894
Bazel.execute('build', args, '//java/src/org/openqa/selenium:client-zip')
897895
Bazel.execute('build', args, '//java/src/org/openqa/selenium/grid:server-zip')
898896
Bazel.execute('build', args, '//java/src/org/openqa/selenium/grid:executable-grid')
@@ -912,9 +910,9 @@ namespace :java do
912910
end
913911

914912
desc 'Deploy all jars to Maven'
915-
task :release, [:args] do |_task, arguments|
916-
args = Array(arguments[:args] || ['--stamp'])
917-
Rake::Task['java:package'].invoke(args)
913+
task :release do |_task, arguments|
914+
args = arguments.to_a.compact.empty? ? ['--stamp'] : arguments.to_a.compact
915+
Rake::Task['java:package'].invoke(*args)
918916
Rake::Task['publish-maven'].invoke
919917
end
920918

@@ -987,8 +985,8 @@ def rust_version
987985
end
988986
namespace :rust do
989987
desc 'Build Selenium Manager'
990-
task :build, [:args] do |_task, arguments|
991-
args = Array(arguments[:args]) || []
988+
task :build do |_task, arguments|
989+
args = arguments.to_a.compact
992990
Bazel.execute('build', args, '//rust:selenium-manager')
993991
end
994992

@@ -1055,28 +1053,28 @@ namespace :all do
10551053
end
10561054

10571055
desc 'Build all artifacts for all language bindings'
1058-
task :build, [:args] do |_task, arguments|
1059-
args = Array(arguments[:args]) || []
1060-
Rake::Task['java:build'].invoke(args)
1061-
Rake::Task['py:build'].invoke(args)
1062-
Rake::Task['rb:build'].invoke(args)
1063-
Rake::Task['dotnet:build'].invoke(args)
1064-
Rake::Task['node:build'].invoke(args)
1056+
task :build do |_task, arguments|
1057+
args = arguments.to_a.compact
1058+
Rake::Task['java:build'].invoke(*args)
1059+
Rake::Task['py:build'].invoke(*args)
1060+
Rake::Task['rb:build'].invoke(*args)
1061+
Rake::Task['dotnet:build'].invoke(*args)
1062+
Rake::Task['node:build'].invoke(*args)
10651063
end
10661064

10671065
desc 'Release all artifacts for all language bindings'
1068-
task :release, [:args] do |_task, arguments|
1066+
task :release do |_task, arguments|
10691067
Rake::Task['clean'].invoke
10701068
tag = @git.add_tag("selenium-#{java_version}")
10711069
@git.push('origin', tag.name)
10721070

1073-
args = Array(arguments[:args] || ['--stamp'])
1074-
Rake::Task['java:release'].invoke(args)
1075-
Rake::Task['py:release'].invoke(args)
1076-
Rake::Task['rb:release'].invoke(args)
1077-
Rake::Task['dotnet:release'].invoke(args)
1078-
Rake::Task['node:release'].invoke(args)
1079-
Rake::Task['create_release_notes'].invoke(args)
1071+
args = arguments.to_a.compact.empty? ? ['--stamp'] : arguments.to_a.compact
1072+
Rake::Task['java:release'].invoke(*args)
1073+
Rake::Task['py:release'].invoke(*args)
1074+
Rake::Task['rb:release'].invoke(*args)
1075+
Rake::Task['dotnet:release'].invoke(*args)
1076+
Rake::Task['node:release'].invoke(*args)
1077+
Rake::Task['create_release_notes'].invoke
10801078
Rake::Task['all:docs'].invoke
10811079
Rake::Task['all:version'].invoke('nightly')
10821080

0 commit comments

Comments
 (0)