-
-
Notifications
You must be signed in to change notification settings - Fork 8.6k
[build] release selenium via workflow #16937
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
|||||||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
|||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR implements a fully automated release workflow for Selenium that can be triggered from CI, eliminating manual steps previously required for releases. The workflow handles building packages, authorization via GitHub environments, parallel publishing of all language bindings, documentation updates, and version bumping back to nightly.
Changes:
- Added comprehensive credential validation in Rakefile to check release prerequisites
- Created new
release.ymlworkflow that orchestrates the entire release process with authorization gates - Streamlined documentation updates to commit directly to gh-pages instead of creating PRs
- Removed obsolete workflows (
stage-release.yml,update-docs-after-action.yml)
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| Rakefile | Added credential validation functions and integrated checks into each language's release task |
| .github/workflows/release.yml | New comprehensive release workflow with staging, authorization, parallel publishing, and post-release tasks |
| .github/workflows/update-documentation.yml | Refactored to accept tag input, parse language from tag suffix, and commit directly to gh-pages |
| .github/workflows/update-docs-after-action.yml | Deleted - no longer needed with new direct commit approach |
| .github/workflows/stage-release.yml | Deleted - functionality moved into release.yml |
| .github/workflows/nightly.yml | Fixed token reference to use GITHUB_TOKEN instead of NODE_AUTH_TOKEN |
| .github/workflows/bazel.yml | Added gpg-sign input parameter and new secret environment variables for releases |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
User description
This should have all the steps needed so that release can be done entirely by CI
Flow:
pre-release.ymlworkflow to generate PR💥 What does this PR do?
Release Workflow can be kicked off manually, but goal is for it to run after pre-release PR has been merged
The pre-release PR should just be about ensuring all the tests are passing, (the changelog generation code has been dramatically simplified and should be fine as-is). Once passing, the merge commit for the PR is what gets tagged as release
release.ymlworkflow:stage-release.yml)stage-release.yml)stage-release.yml)stage-release.yml); makes more sense to do it after publishing🔧 Implementation Notes
💡 Additional Considerations
This is supposed to work for patch releases, but I haven't verified it. I want to tie in pre-release for patch releases as well so it is the same flow regardless.
PR Type
Enhancement, Tests
Description
Implement complete release workflow automation via GitHub Actions
Add GPG signing support for Java releases and credential validation
Replace manual release staging with unified release.yml workflow
Update documentation generation to commit directly to gh-pages branch
Add credential verification rake tasks for all language bindings
Diagram Walkthrough
File Walkthrough
bazel.yml
Add GPG signing and update authentication credentials.github/workflows/bazel.yml
gpg-signinput parameter for GPG key import during Java releasesNODE_AUTH_TOKENwithGITHUB_TOKENfor npm authenticationGEM_HOST_API_KEYandNUGET_API_KEYenvironment variablescrazy-max/ghaction-import-gpgaction
nightly.yml
Update npm authentication token source.github/workflows/nightly.yml
GITHUB_TOKENinstead ofNODE_AUTH_TOKENrelease.yml
Create unified automated release workflow.github/workflows/release.yml
GitHub release
signing for Java
update-documentation.yml
Simplify docs workflow to direct gh-pages commits.github/workflows/update-documentation.yml
tagparameter instead ofversionfor betterflexibility
approach
auto-merge logic
Rakefile
Add credential validation for release tasksRakefile
RELEASE_CREDENTIALShash defining credential requirements for eachlanguage
credential_valid?function to check environment variables,files, and commands
check_credentialsfunction to validate required credentialsbefore release
tasks
all:check_credentialstask for validating all languagecredentials
stage-release.yml
Remove deprecated stage-release workflow.github/workflows/stage-release.yml
release.yml
update-docs-after-action.yml
Remove deprecated docs update trigger workflow.github/workflows/update-docs-after-action.yml
release.yml