@@ -336,69 +336,30 @@ end
336
336
337
337
task 'release-java' : %i[ java-release-zip publish-maven ]
338
338
339
- # TODO: just set the environment variables that maven is asking for
340
339
def read_m2_user_pass
341
- user = ENV . fetch ( 'SEL_M2_USER' , nil )
342
- pass = ENV . fetch ( 'SEL_M2_PASS' , nil )
343
- if user && pass
344
- puts 'Fetching m2 user and pass from environment variables.'
345
- return [ user , pass ]
346
- end
347
-
348
- puts 'Fetching m2 user and pass from /.m2/settings.xml.'
340
+ puts 'Maven environment variables not set, inspecting /.m2/settings.xml.'
349
341
settings = File . read ( "#{ Dir . home } /.m2/settings.xml" )
350
342
found_section = false
351
343
settings . each_line do |line |
352
344
if !found_section
353
345
found_section = line . include? '<id>sonatype-nexus-staging</id>'
354
346
elsif line . include? ( '<username>' )
355
- user = line [ %r{<username>(.*?)</username>} , 1 ]
347
+ ENV [ 'MAVEN_USER' ] = line [ %r{<username>(.*?)</username>} , 1 ]
356
348
elsif line . include? ( '<password>' )
357
- pass = line [ %r{<password>(.*?)</password>} , 1 ]
349
+ ENV [ 'MAVEN_PASSWORD' ] = line [ %r{<password>(.*?)</password>} , 1 ]
358
350
end
359
- break if user && pass
351
+ break if ENV [ 'MAVEN_PASSWORD' ] && ENV [ 'MAVEN_USER' ]
360
352
end
361
- [ user , pass ]
362
353
end
363
354
364
355
desc 'Publish all Java jars to Maven as stable release'
365
- task 'publish-maven' : JAVA_RELEASE_TARGETS do
366
- creds = read_m2_user_pass
367
- JAVA_RELEASE_TARGETS . each do |p |
368
- Bazel . execute ( 'run' ,
369
- [ '--stamp' ,
370
- '--define' ,
371
- 'maven_repo=https://oss.sonatype.org/service/local/staging/deploy/maven2' ,
372
- '--define' ,
373
- "maven_user=#{ creds [ 0 ] } " ,
374
- '--define' ,
375
- "maven_password=#{ creds [ 1 ] } " ,
376
- '--define' ,
377
- 'gpg_sign=true' ] ,
378
- p )
379
- end
356
+ task 'publish-maven' do
357
+ Rake ::Task [ 'java:release' ] . invoke
380
358
end
381
359
382
360
desc 'Publish all Java jars to Maven as nightly release'
383
- task 'publish-maven-snapshot' : JAVA_RELEASE_TARGETS do
384
- creds = read_m2_user_pass
385
- if java_version . end_with? ( '-SNAPSHOT' )
386
- JAVA_RELEASE_TARGETS . each do |p |
387
- Bazel . execute ( 'run' ,
388
- [ '--stamp' ,
389
- '--define' ,
390
- 'maven_repo=https://oss.sonatype.org/content/repositories/snapshots' ,
391
- '--define' ,
392
- "maven_user=#{ creds [ 0 ] } " ,
393
- '--define' ,
394
- "maven_password=#{ creds [ 1 ] } " ,
395
- '--define' ,
396
- 'gpg_sign=false' ] ,
397
- p )
398
- end
399
- else
400
- puts 'No SNAPSHOT version configured. Targets will not be pushed to the snapshot repo in SonaType.'
401
- end
361
+ task 'publish-maven-snapshot' do
362
+ Rake ::Task [ 'java:release' ] . invoke ( 'nightly' )
402
363
end
403
364
404
365
desc 'Install jars to local m2 directory'
@@ -485,11 +446,11 @@ namespace :node do
485
446
486
447
desc 'Release Node npm package'
487
448
task :release do |_task , arguments |
488
- args = arguments . to_a . compact . empty? ? [ '--stamp' ] : arguments . to_a . compact
449
+ args = arguments . to_a . compact
489
450
nightly = args . delete ( 'nightly' )
490
451
Rake ::Task [ 'node:version' ] . invoke ( 'nightly' ) if nightly
491
452
492
- Bazel . execute ( 'run' , args , '//javascript/node/selenium-webdriver:selenium-webdriver.publish' )
453
+ Bazel . execute ( 'run' , [ '--stamp' ] , '//javascript/node/selenium-webdriver:selenium-webdriver.publish' )
493
454
end
494
455
495
456
desc 'Release Node npm package'
@@ -550,12 +511,12 @@ namespace :py do
550
511
551
512
desc 'Release Python wheel and sdist to pypi'
552
513
task :release do |_task , arguments |
553
- args = arguments . to_a . compact . empty? ? [ '--stamp' ] : arguments . to_a . compact
514
+ args = arguments . to_a . compact
554
515
nightly = args . delete ( 'nightly' )
555
516
Rake ::Task [ 'py:version' ] . invoke ( 'nightly' ) if nightly
556
517
557
- command = nightly . nil? ? '//py:selenium-release' : '//py:selenium-release-nightly '
558
- Bazel . execute ( 'run' , args , command )
518
+ command = nightly ? '//py:selenium-release-nightly ' : '//py:selenium-release'
519
+ Bazel . execute ( 'run' , [ '--stamp' ] , command )
559
520
end
560
521
561
522
desc 'generate and copy files required for local development'
@@ -706,9 +667,6 @@ namespace :rb do
706
667
args = arguments . to_a . compact
707
668
webdriver = args . delete ( 'webdriver' )
708
669
devtools = args . delete ( 'devtools' )
709
- if args . include? ( '--config=remote' ) || args . include? ( '--config=release' )
710
- File . write ( 'rb/.ruby-version' , 'jruby-9.4.7.0' )
711
- end
712
670
713
671
Bazel . execute ( 'build' , args , '//rb:selenium-webdriver' ) if webdriver || !devtools
714
672
Bazel . execute ( 'build' , args , '//rb:selenium-devtools' ) if devtools || !webdriver
@@ -724,16 +682,15 @@ namespace :rb do
724
682
desc 'Push Ruby gems to rubygems'
725
683
task :release do |_task , arguments |
726
684
args = arguments . to_a . compact
727
- if args . include? ( '--config=remote' ) || args . include? ( '--config=release' )
728
- File . write ( 'rb/.ruby-version' , 'jruby-9.4.7.0' )
729
- end
730
-
731
685
nightly = args . delete ( 'nightly' )
732
- wd_target = nightly ? '//rb:selenium-webdriver-release' : '//rb:selenium-webdriver-release-nightly'
733
- cdp_target = nightly ? '//rb:selenium-devtools-release' : '//rb:selenium-devtools-release-nightly'
734
686
735
- Bazel . execute ( 'run' , args , wd_target )
736
- Bazel . execute ( 'run' , args , cdp_target )
687
+ if nightly
688
+ Bazel . execute ( 'run' , [ ] , '//rb:selenium-webdriver-bump-nightly-version' )
689
+ Bazel . execute ( 'run' , [ '--stamp' ] , '//rb:selenium-webdriver-release-nightly' )
690
+ else
691
+ Bazel . execute ( 'run' , [ '--stamp' ] , '//rb:selenium-webdriver-release' )
692
+ Bazel . execute ( 'run' , [ '--stamp' ] , '//rb:selenium-devtools-release' )
693
+ end
737
694
end
738
695
739
696
desc 'Generate Ruby documentation'
@@ -802,16 +759,14 @@ namespace :dotnet do
802
759
803
760
desc 'Upload nupkg files to Nuget'
804
761
task :release do |_task , arguments |
805
- args = arguments . to_a . compact . empty? ? [ '--stamp' ] : arguments . to_a . compact
762
+ args = arguments . to_a . compact
806
763
nightly = args . delete ( 'nightly' )
807
764
Rake ::Task [ 'dotnet:version' ] . invoke ( 'nightly' ) if nightly
765
+ Rake ::Task [ 'dotnet:package' ] . invoke ( '--stamp' )
808
766
809
- Rake ::Task [ 'dotnet:package' ] . invoke ( *args )
810
-
811
- release_version = dotnet_version
812
767
api_key = ENV . fetch ( 'NUGET_API_KEY' , nil )
813
768
push_destination = 'https://api.nuget.org/v3/index.json'
814
- if release_version . include? ( '- nightly' )
769
+ if nightly
815
770
# Nightly builds are pushed to GitHub NuGet repository
816
771
# This commands will run in GitHub Actions
817
772
api_key = ENV . fetch ( 'GITHUB_TOKEN' , nil )
@@ -885,13 +840,13 @@ namespace :java do
885
840
desc 'Build Java Client Jars'
886
841
task :build do |_task , arguments |
887
842
args = arguments . to_a . compact
888
- Bazel . execute ( 'build' , args , '//java/src/org/openqa/selenium:client-combined' )
843
+ JAVA_RELEASE_TARGETS . each { | target | Bazel . execute ( 'build' , args , target ) }
889
844
end
890
845
891
- desc 'Build Grid Jar '
846
+ desc 'Build Grid Server '
892
847
task :grid do |_task , arguments |
893
848
args = arguments . to_a . compact
894
- Bazel . execute ( 'build' , args , '//java/src/org/openqa/selenium/grid:grid' )
849
+ Bazel . execute ( 'build' , args , '//java/src/org/openqa/selenium/grid:executable- grid' )
895
850
end
896
851
897
852
desc 'Package Java bindings and grid into releasable packages and stage for release'
@@ -917,9 +872,21 @@ namespace :java do
917
872
918
873
desc 'Deploy all jars to Maven'
919
874
task :release do |_task , arguments |
920
- args = arguments . to_a . compact . empty? ? [ '--stamp' ] : arguments . to_a . compact
921
- Rake ::Task [ 'java:package' ] . invoke ( *args )
922
- Rake ::Task [ 'publish-maven' ] . invoke
875
+ args = arguments . to_a . compact
876
+ nightly = args . delete ( 'nightly' )
877
+
878
+ ENV [ 'MAVEN_USER' ] ||= ENV . fetch ( 'SEL_M2_USER' , nil )
879
+ ENV [ 'MAVEN_PASSWORD' ] ||= ENV . fetch ( 'SEL_M2_PASS' , nil )
880
+ read_m2_user_pass unless ENV [ 'MAVEN_PASSWORD' ] && ENV [ 'MAVEN_USER' ]
881
+
882
+ repo = nightly ? 'content/repositories/snapshots' : 'service/local/staging/deploy/maven2'
883
+ ENV [ 'MAVEN_REPO' ] = "https://oss.sonatype.org/#{ repo } "
884
+ ENV [ 'GPG_SIGN' ] = ( !nightly ) . to_s
885
+
886
+ Rake ::Task [ 'java:version' ] . invoke if nightly
887
+ Rake ::Task [ 'java:package' ] . invoke ( '--stamp' )
888
+ Rake ::Task [ 'java:build' ] . invoke ( '--stamp' )
889
+ JAVA_RELEASE_TARGETS . each { |target | Bazel . execute ( 'run' , [ '--stamp' ] , target ) }
923
890
end
924
891
925
892
desc 'Install jars to local m2 directory'
@@ -1104,8 +1071,9 @@ namespace :all do
1104
1071
end
1105
1072
1106
1073
desc 'Update everything in preparation for a release'
1107
- task :prepare , [ :channel ] do |_task , arguments |
1074
+ task :prepare , [ :version , : channel] do |_task , arguments |
1108
1075
chrome_channel = arguments [ :channel ] || 'Stable'
1076
+ version = arguments [ :version ]
1109
1077
args = Array ( chrome_channel ) ? [ '--' , "--chrome_channel=#{ chrome_channel . capitalize } " ] : [ ]
1110
1078
Bazel . execute ( 'run' , args , '//scripts:pinned_browsers' )
1111
1079
commit! ( 'Update pinned browser versions' , [ 'common/repositories.bzl' ] )
@@ -1135,7 +1103,7 @@ namespace :all do
1135
1103
commit! ( 'Update authors file' , [ 'AUTHORS' ] )
1136
1104
1137
1105
# Note that this does not include Rust version changes that are handled in separate rake:version task
1138
- Rake ::Task [ 'all:version' ] . invoke
1106
+ Rake ::Task [ 'all:version' ] . invoke ( version )
1139
1107
commit! ( "FIX CHANGELOGS BEFORE MERGING!\n \n Update versions and change logs to release Selenium #{ java_version } " ,
1140
1108
[ 'dotnet/CHANGELOG' ,
1141
1109
'dotnet/selenium-dotnet-version.bzl' ,
0 commit comments