Files

88 lines
2.2 KiB
YAML

name: CI - JavaScript
on:
workflow_call:
inputs:
targets:
required: false
type: string
default: ''
run-full-suite:
required: false
type: boolean
default: true
workflow_dispatch:
permissions:
contents: read
jobs:
unit-tests:
name: Unit Tests
if: ${{ github.event_name == 'workflow_dispatch' || inputs.run-full-suite }}
uses: ./.github/workflows/bazel.yml
strategy:
fail-fast: false
matrix:
nodejs-version: ['20.19.5', '24.11.1']
os: [macos, windows]
with:
name: Unit Tests (node ${{ matrix.node-version }}, ${{ matrix.os }})
os: ${{ matrix.os }}
node-version: ${{ matrix.node-version }}
run: >
bazel test
--keep_going
--build_tests_only
--test_size_filters=small
//javascript/selenium-webdriver/...
filter-targets:
name: Filter Targets
runs-on: ubuntu-latest
outputs:
targets: ${{ steps.filter.outputs.targets }}
steps:
- name: Filter JavaScript targets
id: filter
shell: bash
run: |
targets="${{ inputs.targets }}"
filtered=()
for t in $targets; do
[[ "$t" == //javascript/selenium-webdriver* ]] && filtered+=("$t")
done
if [ ${#filtered[@]} -eq 0 ]; then
echo "targets=//javascript/selenium-webdriver/..." >> "$GITHUB_OUTPUT"
else
echo "targets=${filtered[*]}" >> "$GITHUB_OUTPUT"
fi
browser-tests:
name: Browser Tests
needs: filter-targets
uses: ./.github/workflows/bazel.yml
strategy:
fail-fast: false
matrix:
browser: [chrome, firefox, chrome-bidi, firefox-bidi]
os: [windows-2022]
with:
name: Browser Tests (${{ matrix.browser }}, ${{ matrix.os }})
os: ${{ matrix.os }}
browser: ${{ matrix.browser }}
run: >
bazel test
--keep_going
--build_tests_only
--flaky_test_attempts 3
--local_test_jobs 1
--test_size_filters=large
--test_tag_filters=${{ matrix.browser }}
--pin_browsers=false
--test_env=SE_FORCE_BROWSER_DOWNLOAD=true
--test_env=SE_SKIP_DRIVER_IN_PATH=true
${{ needs.filter-targets.outputs.targets }}