From e1c8ff2b031bbfd6dd257a173e0a302f09882bc2 Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Mon, 17 Aug 2026 10:50:29 -0500 Subject: [PATCH 1/3] [build] fix release mirror push target and poll Maven Central when verifying Java --- .../workflows/mirror-selenium-releases.yml | 3 +- rake_tasks/java.rake | 30 ++++++++----------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/.github/workflows/mirror-selenium-releases.yml b/.github/workflows/mirror-selenium-releases.yml index 1a7829fdad0ed..755b981e51978 100644 --- a/.github/workflows/mirror-selenium-releases.yml +++ b/.github/workflows/mirror-selenium-releases.yml @@ -14,6 +14,7 @@ jobs: steps: - uses: actions/checkout@v6 with: + ref: trunk persist-credentials: false - name: Read api.github.com and filter response run: | @@ -54,4 +55,4 @@ jobs: uses: ad-m/github-push-action@master with: github_token: ${{ secrets.SELENIUM_CI_TOKEN }} - branch: ${{ github.ref }} + branch: trunk diff --git a/rake_tasks/java.rake b/rake_tasks/java.rake index cdfa825a24b44..e45620609193c 100644 --- a/rake_tasks/java.rake +++ b/rake_tasks/java.rake @@ -279,22 +279,6 @@ task :release do |_task, arguments| args = arguments.to_a nightly = args.delete('nightly') - unless nightly - already_published = begin - Rake::Task['java:verify'].invoke - true - rescue StandardError - false - ensure - Rake::Task['java:verify'].reenable - end - - if already_published - puts 'Java packages already published — skipping release.' - next - end - end - Rake::Task['java:check_credentials'].invoke(*(nightly ? ['nightly'] : [])) ENV['MAVEN_USER'] ||= ENV.fetch('SEL_M2_USER', nil) @@ -330,7 +314,19 @@ end desc 'Verify Java packages are published on Maven Central' task :verify do base = 'https://repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-java' - SeleniumRake.verify_package_published("#{base}/#{java_version}/selenium-java-#{java_version}.pom") + deadline = Process.clock_gettime(Process::CLOCK_MONOTONIC) + 600 + + begin + SeleniumRake.verify_package_published("#{base}/#{java_version}/selenium-java-#{java_version}.pom") + rescue StandardError => e + if Process.clock_gettime(Process::CLOCK_MONOTONIC) > deadline + raise "#{e.message}; check https://central.sonatype.com/publishing/deployments" + end + + puts " #{e.message}; Maven Central may still be indexing, retrying in 15s" + sleep 15 + retry + end end desc 'Install jars to local m2 directory' From 9313743e3c86ce3d682ab139c20a478ec29fa041 Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Mon, 17 Aug 2026 19:00:56 -0500 Subject: [PATCH 2/3] [build] keep the already-published pre-check out of the Java verify polling --- rake_tasks/java.rake | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/rake_tasks/java.rake b/rake_tasks/java.rake index e45620609193c..85b66431a8b3f 100644 --- a/rake_tasks/java.rake +++ b/rake_tasks/java.rake @@ -279,6 +279,20 @@ task :release do |_task, arguments| args = arguments.to_a nightly = args.delete('nightly') + unless nightly + already_published = begin + SeleniumRake.verify_package_published(maven_central_pom_url) + true + rescue StandardError + false + end + + if already_published + puts 'Java packages already published — skipping release.' + next + end + end + Rake::Task['java:check_credentials'].invoke(*(nightly ? ['nightly'] : [])) ENV['MAVEN_USER'] ||= ENV.fetch('SEL_M2_USER', nil) @@ -311,13 +325,17 @@ task :release do |_task, arguments| trigger_sonatype_publish(token) end +def maven_central_pom_url + base = 'https://repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-java' + "#{base}/#{java_version}/selenium-java-#{java_version}.pom" +end + desc 'Verify Java packages are published on Maven Central' task :verify do - base = 'https://repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-java' deadline = Process.clock_gettime(Process::CLOCK_MONOTONIC) + 600 begin - SeleniumRake.verify_package_published("#{base}/#{java_version}/selenium-java-#{java_version}.pom") + SeleniumRake.verify_package_published(maven_central_pom_url) rescue StandardError => e if Process.clock_gettime(Process::CLOCK_MONOTONIC) > deadline raise "#{e.message}; check https://central.sonatype.com/publishing/deployments" From 5ee5917b294f02f446602db0b07482c85624d6a4 Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Mon, 17 Aug 2026 19:58:21 -0500 Subject: [PATCH 3/3] [build] name the exception class when Java verification retries and gives up --- rake_tasks/java.rake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rake_tasks/java.rake b/rake_tasks/java.rake index 85b66431a8b3f..776bb71083f98 100644 --- a/rake_tasks/java.rake +++ b/rake_tasks/java.rake @@ -338,10 +338,10 @@ task :verify do SeleniumRake.verify_package_published(maven_central_pom_url) rescue StandardError => e if Process.clock_gettime(Process::CLOCK_MONOTONIC) > deadline - raise "#{e.message}; check https://central.sonatype.com/publishing/deployments" + raise "#{e.class}: #{e.message}; check https://central.sonatype.com/publishing/deployments" end - puts " #{e.message}; Maven Central may still be indexing, retrying in 15s" + puts " #{e.class}: #{e.message}; Maven Central may still be indexing, retrying in 15s" sleep 15 retry end