@@ -50,12 +50,22 @@ $DEBUG = true if ENV['debug'] == 'true'
50
50
51
51
verbose ( $DEBUG)
52
52
53
- def release_version
54
- '4.16'
53
+ def java_version
54
+ File . foreach ( 'java/version.bzl' ) do |line |
55
+ return line . split ( '=' ) . last . strip . tr ( '"' , '' ) if line . include? ( 'SE_VERSION' )
56
+ end
55
57
end
56
58
57
- def version
58
- "#{ release_version } .0-SNAPSHOT"
59
+ def dotnet_version
60
+ File . foreach ( 'dotnet/selenium-dotnet-version.bzl' ) do |line |
61
+ return line . split ( '=' ) . last . strip . tr ( '"' , '' ) if line . include? ( 'SE_VERSION' )
62
+ end
63
+ end
64
+
65
+ def python_version
66
+ File . foreach ( 'py/BUILD.bazel' ) do |line |
67
+ return line . split ( '=' ) . last . strip . tr ( '"' , '' ) if line . include? ( 'SE_VERSION' )
68
+ end
59
69
end
60
70
61
71
# The build system used by webdriver is layered on top of rake, and we call it
@@ -99,7 +109,7 @@ JAVA_RELEASE_TARGETS = %w[
99
109
//java/src/org/openqa/selenium/chrome:chrome.publish
100
110
//java/src/org/openqa/selenium/chromium:chromium.publish
101
111
//java/src/org/openqa/selenium/devtools/v119:v119.publish
102
- //java/src/org/openqa/selenium/devtools/v117:v117 .publish
112
+ //java/src/org/openqa/selenium/devtools/v120:v120 .publish
103
113
//java/src/org/openqa/selenium/devtools/v118:v118.publish
104
114
//java/src/org/openqa/selenium/devtools/v85:v85.publish
105
115
//java/src/org/openqa/selenium/edge:edge.publish
@@ -129,7 +139,7 @@ task all: [
129
139
:"selenium-java" ,
130
140
'//java/test/org/openqa/selenium/environment:webserver'
131
141
]
132
- task all_zip : [ :'prep -release-zip' ]
142
+ task all_zip : [ :'java-release-zip' , :'dotnet -release-zip']
133
143
task tests : [
134
144
'//java/test/org/openqa/selenium/htmlunit:htmlunit' ,
135
145
'//java/test/org/openqa/selenium/firefox:test-synthesized' ,
@@ -326,30 +336,48 @@ task ios_driver: [
326
336
'//javascript/webdriver/atoms/fragments:get_location_in_view:ios'
327
337
]
328
338
329
- task 'prep-release-zip' : [
339
+ task 'dotnet-release-zip' : [
340
+ '//dotnet:all'
341
+ ] do
342
+ [
343
+ "build/dist/selenium-dotnet-#{ dotnet_version } .zip" ,
344
+ "build/dist/selenium-dotnet-strongnamed-#{ dotnet_version } .zip" ,
345
+ ] . each do |f |
346
+ rm_f ( f ) if File . exists? ( f )
347
+ end
348
+ mkdir_p 'build/dist'
349
+ File . delete
350
+
351
+ cp "bazel-bin/dotnet/release.zip" , "build/dist/selenium-dotnet-#{ dotnet_version } .zip" , preserve : false
352
+ chmod 0666 , "build/dist/selenium-dotnet-#{ dotnet_version } .zip"
353
+ cp "bazel-bin/dotnet/strongnamed.zip" , "build/dist/selenium-dotnet-strongnamed-#{ dotnet_version } .zip" , preserve : false
354
+ chmod 0666 , "build/dist/selenium-dotnet-strongnamed-#{ dotnet_version } .zip"
355
+ end
356
+
357
+ task 'java-release-zip' : [
330
358
'//java/src/org/openqa/selenium:client-zip' ,
331
359
'//java/src/org/openqa/selenium/grid:server-zip' ,
332
360
'//java/src/org/openqa/selenium/grid:executable-grid' ,
333
361
] do
334
362
[
335
- "build/dist/selenium-server-#{ version } .zip" ,
336
- "build/dist/selenium-java-#{ version } .zip" ,
337
- "build/dist/selenium-server-#{ version } .jar"
363
+ "build/dist/selenium-server-#{ java_version } .zip" ,
364
+ "build/dist/selenium-java-#{ java_version } .zip" ,
365
+ "build/dist/selenium-server-#{ java_version } .jar"
338
366
] . each do |f |
339
367
rm_f ( f ) if File . exists? ( f )
340
368
end
341
369
342
370
mkdir_p 'build/dist'
343
371
File . delete
344
- cp "bazel-bin/java/src/org/openqa/selenium/grid/server-zip.zip" , "build/dist/selenium-server-#{ version } .zip" , preserve : false
345
- chmod 0666 , "build/dist/selenium-server-#{ version } .zip"
346
- cp "bazel-bin/java/src/org/openqa/selenium/client-zip.zip" , "build/dist/selenium-java-#{ version } .zip" , preserve : false
347
- chmod 0666 , "build/dist/selenium-java-#{ version } .zip"
348
- cp "bazel-bin/java/src/org/openqa/selenium/grid/selenium" , "build/dist/selenium-server-#{ version } .jar" , preserve : false
349
- chmod 0666 , "build/dist/selenium-server-#{ version } .jar"
372
+ cp "bazel-bin/java/src/org/openqa/selenium/grid/server-zip.zip" , "build/dist/selenium-server-#{ java_version } .zip" , preserve : false
373
+ chmod 0666 , "build/dist/selenium-server-#{ java_version } .zip"
374
+ cp "bazel-bin/java/src/org/openqa/selenium/client-zip.zip" , "build/dist/selenium-java-#{ java_version } .zip" , preserve : false
375
+ chmod 0666 , "build/dist/selenium-java-#{ java_version } .zip"
376
+ cp "bazel-bin/java/src/org/openqa/selenium/grid/selenium" , "build/dist/selenium-server-#{ java_version } .jar" , preserve : false
377
+ chmod 0777 , "build/dist/selenium-server-#{ java_version } .jar"
350
378
end
351
379
352
- task 'release-java' : %i[ prep -release-zip publish-maven ]
380
+ task 'release-java' : %i[ java -release-zip publish-maven ]
353
381
354
382
def read_m2_user_pass
355
383
# First check env vars, then the settings.xml config inside .m2
@@ -378,6 +406,48 @@ def read_m2_user_pass
378
406
return [ user , pass ]
379
407
end
380
408
409
+ task :prepare_release do
410
+ RELEASE_TARGETS = [
411
+ '//java/src/org/openqa/selenium:client-zip' ,
412
+ '//java/src/org/openqa/selenium/grid:server-zip' ,
413
+ '//java/src/org/openqa/selenium/grid:executable-grid' ,
414
+ '//dotnet/src/webdriver:webdriver-pack' ,
415
+ '//dotnet/src/webdriver:webdriver-strongnamed-pack' ,
416
+ '//dotnet/src/support:support-pack' ,
417
+ '//dotnet/src/support:support-strongnamed-pack' ,
418
+ '//javascript/node/selenium-webdriver:selenium-webdriver' ,
419
+ '//py:selenium-wheel' ,
420
+ '//py:selenium-sdist' ,
421
+ ]
422
+
423
+ RELEASE_TARGETS . each do |target |
424
+ Bazel ::execute ( 'build' , [ '--config' , 'release' ] , target )
425
+ end
426
+ Bazel ::execute ( 'build' , [ '--stamp' ] , '//rb:selenium-webdriver' )
427
+ end
428
+
429
+ PYPI_ASSETS = [
430
+ "bazel-bin/py/selenium-#{ python_version } -py3-none-any.whl" ,
431
+ "bazel-bin/py/selenium-#{ python_version } .tar.gz"
432
+ ]
433
+
434
+ task 'publish-pypi' do
435
+ PYPI_ASSETS . each do |asset |
436
+ sh "python3 -m twine upload #{ asset } "
437
+ end
438
+ end
439
+
440
+ NUGET_RELEASE_ASSETS = [
441
+ "./bazel-bin/dotnet/src/webdriver/Selenium.WebDriver.#{ dotnet_version } .nupkg" ,
442
+ "./bazel-bin/dotnet/src/support/Selenium.Support.#{ dotnet_version } .nupkg"
443
+ ]
444
+
445
+ task 'publish-nuget' : '//dotnet:all' do
446
+ NUGET_RELEASE_ASSETS . each do |asset |
447
+ sh "dotnet nuget push #{ asset } --api-key #{ ENV [ 'NUGET_API_KEY' ] } --source https://api.nuget.org/v3/index.json"
448
+ end
449
+ end
450
+
381
451
task 'publish-maven' : JAVA_RELEASE_TARGETS do
382
452
creds = read_m2_user_pass
383
453
JAVA_RELEASE_TARGETS . each do |p |
387
457
388
458
task 'publish-maven-snapshot' : JAVA_RELEASE_TARGETS do
389
459
creds = read_m2_user_pass
390
- if version . end_with? ( '-SNAPSHOT' )
460
+ if java_version . end_with? ( '-SNAPSHOT' )
391
461
JAVA_RELEASE_TARGETS . each do |p |
392
462
Bazel ::execute ( 'run' , [ '--stamp' , '--define' , 'maven_repo=https://oss.sonatype.org/content/repositories/snapshots' , '--define' , "maven_user=#{ creds [ 0 ] } " , '--define' , "maven_password=#{ creds [ 1 ] } " , '--define' , 'gpg_sign=false' ] , p )
393
463
end
0 commit comments