[py] Fix Selenium Manager tests on Windows #3
Workflow file for this run
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | name: Bazel | ||
| on: | ||
| workflow_call: | ||
| inputs: | ||
| name: | ||
| description: Name of workflow | ||
| required: false | ||
| type: string | ||
| run: | ||
| description: Bazel command to run | ||
| required: true | ||
| type: string | ||
| os: | ||
| description: One of ubuntu, windows or macos | ||
| required: false | ||
| type: string | ||
| default: ubuntu | ||
| browser: | ||
| description: One of chrome, firefox, or edge | ||
| required: false | ||
| type: string | ||
| default: '' | ||
| browser-version: | ||
| description: One of stable, latest, latest-beta or latest-devedition | ||
| required: false | ||
| type: string | ||
| default: '' | ||
| caching: | ||
| description: Toggle caching of Bazel | ||
| required: false | ||
| type: boolean | ||
| default: true | ||
| cache-key: | ||
| description: Bazel disk cache key | ||
| required: false | ||
| type: string | ||
| default: '' | ||
| dotnet-version: | ||
| description: Custom DotNet version to install | ||
| required: false | ||
| type: string | ||
| default: '' | ||
| java-version: | ||
| description: Custom Java version to install | ||
| required: false | ||
| type: string | ||
| default: '' | ||
| node-version: | ||
| description: Custom Node version to install | ||
| required: false | ||
| type: string | ||
| default: '' | ||
| ruby-version: | ||
| description: Custom Ruby version to use | ||
| required: false | ||
| type: string | ||
| default: '' | ||
| nightly-release-files: | ||
| description: Files to upload to the Nightly release tag | ||
| required: false | ||
| type: string | ||
| default: '' | ||
| artifact-name: | ||
| description: Name of artifact to upload | ||
| required: false | ||
| type: string | ||
| default: 'ignore-artifacts' | ||
| jobs: | ||
| bazel: | ||
| name: ${{ inputs.name }} | ||
| runs-on: ${{ contains(inputs.os, '-') && inputs.os || format('{0}-latest', inputs.os) }} | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| SEL_M2_USER: ${{ secrets.SEL_M2_USER }} | ||
| SEL_M2_PASS: ${{ secrets.SEL_M2_PASS }} | ||
| TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }} | ||
| TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }} | ||
| NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| SE_AVOID_STATS: true | ||
| steps: | ||
| - name: Checkout source tree | ||
| uses: actions/checkout@v4 | ||
| - name: Pull latest changes from head ref for PRs | ||
| if: contains(github.head_ref, 'renovate/') | ||
| run: git pull origin ${{ github.head_ref }} | ||
| - name: Pull latest changes from ref for branch pushes | ||
| if: contains(github.ref, 'renovate/') | ||
| run: git pull origin ${{ github.ref }} | ||
| - name: Free space | ||
| if: inputs.os != 'windows' | ||
| run: ./scripts/github-actions/free-disk-space.sh | ||
| - name: Remove driver directories Windows | ||
| if: inputs.os == 'windows' | ||
| run: | | ||
| rm "$env:ChromeWebDriver" -r -v | ||
| rm "$env:EdgeWebDriver" -r -v | ||
| rm "$env:GeckoWebDriver" -r -v | ||
| - name: Remove driver directories Non-Windows | ||
| if: inputs.os != 'windows' | ||
| run: | | ||
| sudo rm -rf "$CHROMEWEBDRIVER" "$EDGEWEBDRIVER" "$GECKOWEBDRIVER" | ||
| - name: Set Ruby version | ||
| if: inputs.ruby-version != '' | ||
| run: echo '${{ inputs.ruby-version }}' > rb/.ruby-version | ||
| - name: Setup DotNet | ||
| if: inputs.dotnet-version != '' | ||
| uses: actions/setup-dotnet@v4 | ||
| with: | ||
| dotnet-version: ${{ inputs.dotnet-version }} | ||
| - name: Setup Java | ||
| if: inputs.java-version != '' | ||
| uses: actions/setup-java@v3 | ||
| with: | ||
| java-version: ${{ inputs.java-version }} | ||
| distribution: 'temurin' | ||
| - name: Setup Node | ||
| if: inputs.node-version != '' | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: ${{ inputs.node-version }} | ||
| - name: Setup Bazel with caching | ||
| if: inputs.caching | ||
| uses: bazel-contrib/[email protected] | ||
| with: | ||
| bazelisk-cache: true | ||
| bazelrc: common --color=yes | ||
| # Workaround for long path issues: https://github.com/bazelbuild/bazel/pull/22532 | ||
| output-base: ${{ inputs.os == 'windows' && 'D://b || '' }} | ||
| cache-version: 2 | ||
| disk-cache: ${{ inputs.cache-key }} | ||
| external-cache: | | ||
| name: ${{ inputs.cache-key }} | ||
| manifest: | ||
| crates: rust/Cargo.Bazel.lock | ||
| rules_ruby++ruby+ruby: ${{ inputs.os == 'windows' && 'false' || 'rb/.ruby-version' }} | ||
| repository-cache: true | ||
| - name: Setup Bazel without caching | ||
| if: inputs.caching == false | ||
| uses: bazel-contrib/[email protected] | ||
| with: | ||
| bazelrc: common --color=yes | ||
| - name: Setup curl for Ubuntu | ||
| if: inputs.os == 'ubuntu' | ||
| run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev | ||
| - name: Setup Fluxbox and Xvfb | ||
| if: inputs.os == 'ubuntu' && inputs.browser != '' | ||
| run: | | ||
| sudo apt-get -y install fluxbox | ||
| Xvfb :99 & | ||
| fluxbox -display :99 & | ||
| echo "DISPLAY=:99" >> "$GITHUB_ENV" | ||
| - name: Set resolution | ||
| if: inputs.os == 'windows' && inputs.browser != '' | ||
| run: Set-DisplayResolution -Width 1920 -Height 1080 -Force | ||
| - name: Setup Safari | ||
| if: inputs.browser == 'safari' | ||
| run: sudo safaridriver --enable | ||
| - name: Run Bazel | ||
| run: ${{ inputs.run }} | ||
| - name: Start SSH session | ||
| if: failure() && runner.debug == '1' | ||
| uses: mxschmitt/action-tmate@v3 | ||
| with: | ||
| limit-access-to-actor: false | ||
| - name: Release Nightly | ||
| if: inputs.nightly-release-files != '' | ||
| uses: marvinpinto/action-automatic-releases@latest | ||
| with: | ||
| repo_token: "${{ secrets.GITHUB_TOKEN }}" | ||
| automatic_release_tag: "nightly" | ||
| title: "Nightly" | ||
| prerelease: true | ||
| files: ${{ inputs.nightly-release-files }} | ||
| - name: Save changes | ||
| if: ${{ always() && inputs.artifact-name != 'ignore-artifacts' }} | ||
| run: | | ||
| git diff > changes.patch | ||
| - name: "Upload changes" | ||
| if: ${{ always() && inputs.artifact-name != 'ignore-artifacts' }} | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: ${{ inputs.artifact-name }} | ||
| path: changes.patch | ||
| retention-days: 6 | ||