| name: Release Preparation |
| |
| on: |
| workflow_dispatch: |
| inputs: |
| version: |
| description: 'Selenium version to release' |
| required: true |
| chrome_channel: |
| description: 'Chrome Channel for CDP' |
| required: true |
| type: choice |
| default: "stable" |
| options: |
| - stable |
| - early-stable |
| |
| jobs: |
| update-rust: |
| name: Update Rust Version |
| runs-on: ubuntu-latest |
| steps: |
| - name: "Checkout repo" |
| uses: actions/checkout@v4 |
| with: |
| persist-credentials: false |
| fetch-depth: 0 |
| fetch-tags: true |
| - name: "Prep git" |
| run: | |
| git config --local user.email "selenium-ci@users.noreply.github.com" |
| git config --local user.name "Selenium CI Bot" |
| if git rev-parse --verify release-${{ github.event.inputs.version }} >/dev/null 2>&1; then |
| git branch -D release-${{ github.event.inputs.version }} |
| fi |
| git checkout -b release-${{ github.event.inputs.version }} |
| - name: Update Rust Version |
| run: | |
| ./go rust:version |
| ./go rust:version:commit |
| - name: Push changes |
| uses: ad-m/github-push-action@master |
| with: |
| github_token: ${{ secrets.SELENIUM_CI_TOKEN }} |
| branch: release-${{ github.event.inputs.version }} |
| force: true |
| |
| selenium-manager: |
| name: Release Selenium Manager |
| needs: update-rust |
| uses: ./.github/workflows/ci-rust.yml |
| with: |
| release: true |
| branch: release-${{ github.event.inputs.version }} |
| secrets: |
| SELENIUM_CI_TOKEN: ${{ secrets.SELENIUM_CI_TOKEN }} |
| |
| update-files: |
| name: Update Files |
| runs-on: ubuntu-latest |
| needs: selenium-manager |
| steps: |
| - name: "Checkout project" |
| uses: actions/checkout@v4 |
| with: |
| persist-credentials: false |
| fetch-depth: 0 |
| fetch-tags: true |
| ref: release-${{ github.event.inputs.version }} |
| - name: Install Ruby |
| uses: ruby/setup-ruby@d5fb7a202fc07872cb44f00ba8e6197b70cb0c55 |
| with: |
| ruby-version: '3.1' |
| working-directory: 'rb' |
| - name: "Prep git" |
| run: | |
| git config --local user.email "selenium-ci@users.noreply.github.com" |
| git config --local user.name "Selenium CI Bot" |
| - name: Undo rust changelog commit |
| run: git reset HEAD~1 |
| - name: Update everything including early release CDP |
| if: ${{ github.event.inputs.chrome_channel == 'early-stable' }} |
| run: ./go all:prepare['Beta'] |
| - name: Update everything including released CDP |
| if: ${{ github.event.inputs.chrome_channel == 'stable' }} |
| run: ./go "all:prepare[Stable]" |
| - name: Create Pull Request |
| uses: peter-evans/create-pull-request@v6 |
| with: |
| token: ${{ secrets.SELENIUM_CI_TOKEN }} |
| author: Selenium CI Bot <selenium-ci@users.noreply.github.com> |
| delete-branch: true |
| branch: release-preparation-${{ github.event.inputs.version }} |
| base: trunk |
| title: "[build] Prepare for release of Selenium ${{ github.event.inputs.version }}" |
| body: | |
| **Warning: Manually update the changelogs before merging** |
| |
| This PR: |
| * Updates Rust version for Selenium Manager release |
| * Updates Pinned browser version to coincide with new CDP release |
| * Adds support for new CDP version and removes old CDP version |
| * Selenium Manager references the new Selenium Manager release |
| * Updates Maven Dependencies |
| * Adds new authors to authors file |
| * Updates all versions for all bindings |
| * Generates *rough* change logs for each bindings (please tidy them up before merging this) |
| |
| - Auto-generated by [create-pull-request][1] |
| |
| [1]: https://github.com/peter-evans/create-pull-request |
| labels: C-build |
| draft: true |