| name: Nightly |
| on: |
| schedule: |
| - cron: 0 0 * * * |
| workflow_dispatch: |
| inputs: |
| version: |
| description: Nightly version number (e.g. 20221125) |
| required: false |
| type: string |
| default: '' |
| language: |
| description: Language artefacts |
| required: true |
| type: choice |
| default: "ruby" |
| options: |
| - java |
| - ruby |
| - python |
| - grid |
| - dotnet |
| - javascript |
| workflow_call: |
| inputs: |
| language: |
| required: false |
| type: string |
| default: "all" |
| |
| jobs: |
| ruby: |
| if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'ruby' || inputs.language == 'all' || github.event_name == 'schedule') |
| name: Ruby |
| uses: ./.github/workflows/bazel.yml |
| strategy: |
| fail-fast: false |
| matrix: |
| gem: |
| - selenium-webdriver |
| with: |
| name: Nightly Ruby Release |
| cache-key: rb-nightly-${{ matrix.gem }} |
| run: | |
| export GEM_HOST_API_KEY="Bearer $GITHUB_TOKEN" |
| ./go rb:release[nightly] |
| on-ruby-failure: |
| name: On Ruby Failure |
| runs-on: ubuntu-latest |
| if: ${{ always() && (needs.ruby.result == 'failure' || needs.ruby.result == 'timed_out') }} |
| needs: ruby |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Slack Notification |
| uses: rtCamp/action-slack-notify@v2 |
| env: |
| SLACK_ICON_EMOJI: ":rotating_light:" |
| SLACK_COLOR: ${{ needs.ruby.status }} |
| SLACK_CHANNEL: selenium-tlc |
| SLACK_USERNAME: GitHub Workflows |
| SLACK_TITLE: Nightly Ruby ${{ needs.ruby.result }} |
| MSG_MINIMAL: actions url |
| SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} |
| |
| python: |
| if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'python' || inputs.language == 'all' || github.event_name == 'schedule') |
| name: Python |
| uses: ./.github/workflows/bazel.yml |
| with: |
| name: Nightly Python Release |
| cache-key: python-nightly |
| run: ./go py:release[nightly] |
| secrets: inherit |
| on-python-failure: |
| name: On Python Failure |
| runs-on: ubuntu-latest |
| if: ${{ always() && (needs.python.result == 'failure' || needs.python.result == 'timed_out') }} |
| needs: python |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Slack Notification |
| uses: rtCamp/action-slack-notify@v2 |
| env: |
| SLACK_ICON_EMOJI: ":rotating_light:" |
| SLACK_COLOR: ${{ needs.python.status }} |
| SLACK_CHANNEL: selenium-tlc |
| SLACK_USERNAME: GitHub Workflows |
| SLACK_TITLE: Nightly Python ${{ needs.python.result }} |
| MSG_MINIMAL: actions url |
| SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} |
| |
| java: |
| if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'java' || inputs.language == 'all' || github.event_name == 'schedule') |
| name: Java |
| uses: ./.github/workflows/bazel.yml |
| with: |
| name: Nightly Java Release |
| cache-key: java-nightly |
| run: ./go java:release[nightly] |
| secrets: inherit |
| on-java-failure: |
| name: On Java Failure |
| runs-on: ubuntu-latest |
| if: ${{ always() && (needs.java.result == 'failure' || needs.java.result == 'timed_out') }} |
| needs: java |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Slack Notification |
| uses: rtCamp/action-slack-notify@v2 |
| env: |
| SLACK_ICON_EMOJI: ":rotating_light:" |
| SLACK_COLOR: ${{ needs.java.status }} |
| SLACK_CHANNEL: selenium-tlc |
| SLACK_USERNAME: GitHub Workflows |
| SLACK_TITLE: Nightly Java ${{ needs.java.result }} |
| MSG_MINIMAL: actions url |
| SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} |
| |
| dotnet: |
| if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'dotnet' || inputs.language == 'all' || github.event_name == 'schedule') |
| name: DotNet |
| uses: ./.github/workflows/bazel.yml |
| with: |
| name: Nightly DotNet Release |
| cache-key: dotnet-nightly |
| dotnet-version: '6.x' |
| run: ./go dotnet:release[--stamp,nightly] |
| secrets: inherit |
| on-dotnet-failure: |
| name: On .NET Failure |
| runs-on: ubuntu-latest |
| if: ${{ always() && (needs.dotnet.result == 'failure' || needs.dotnet.result == 'timed_out') }} |
| needs: dotnet |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Slack Notification |
| uses: rtCamp/action-slack-notify@v2 |
| env: |
| SLACK_ICON_EMOJI: ":rotating_light:" |
| SLACK_COLOR: ${{ needs.dotnet.status }} |
| SLACK_CHANNEL: selenium-tlc |
| SLACK_USERNAME: GitHub Workflows |
| SLACK_TITLE: Nightly .NET ${{ needs.dotnet.result }} |
| MSG_MINIMAL: actions url |
| SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} |
| |
| grid: |
| if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'grid' || inputs.language == 'all' || github.event_name == 'schedule') |
| name: Grid |
| uses: ./.github/workflows/bazel.yml |
| with: |
| name: Nightly Grid Release |
| cache-key: grid-nightly |
| run: ./go java:package[--config=release] |
| nightly-release-files: build/dist/*.* |
| on-grid-failure: |
| name: On Grid Failure |
| runs-on: ubuntu-latest |
| if: ${{ always() && (needs.grid.result == 'failure' || needs.grid.result == 'timed_out') }} |
| needs: grid |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Slack Notification |
| uses: rtCamp/action-slack-notify@v2 |
| env: |
| SLACK_ICON_EMOJI: ":rotating_light:" |
| SLACK_COLOR: ${{ needs.grid.status }} |
| SLACK_CHANNEL: selenium-tlc |
| SLACK_USERNAME: GitHub Workflows |
| SLACK_TITLE: Nightly Grid ${{ needs.grid.result }} |
| MSG_MINIMAL: actions url |
| SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} |
| |
| javascript: |
| if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'javascript' || inputs.language == 'all' || github.event_name == 'schedule') |
| name: JavaScript |
| uses: ./.github/workflows/bazel.yml |
| with: |
| name: Nightly JavaScript Release |
| cache-key: javascript-nightly |
| node-version: '22.x' |
| run: | |
| sed -i 's|https://registry.npmjs.org/|https://npm.pkg.github.com|g' javascript/selenium-webdriver/package.json |
| sed -i 's|"name": "selenium-webdriver"|"name": "@seleniumhq/selenium-webdriver"|g' javascript/selenium-webdriver/package.json |
| echo "//npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN}" >> ~/.npmrc |
| echo "@seleniumhq:registry=https://npm.pkg.github.com" >> ~/.npmrc |
| echo "always-auth=true" >> ~/.npmrc |
| ./go node:release[--stamp,nightly] |
| secrets: inherit |
| on-javascript-failure: |
| name: On JavaScript Failure |
| runs-on: ubuntu-latest |
| if: ${{ always() && (needs.javascript.result == 'failure' || needs.javascript.result == 'timed_out') }} |
| needs: javascript |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Slack Notification |
| uses: rtCamp/action-slack-notify@v2 |
| env: |
| SLACK_ICON_EMOJI: ":rotating_light:" |
| SLACK_COLOR: ${{ needs.javascript.status }} |
| SLACK_CHANNEL: selenium-tlc |
| SLACK_USERNAME: GitHub Workflows |
| SLACK_TITLE: Nightly JavaScript ${{ needs.javascript.result }} |
| MSG_MINIMAL: actions url |
| SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} |