blob: 30532c5d8c9252775de6d486801248af0713af16 [file] [log] [blame] [edit]
name: CI - Java
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:
filter-targets:
name: Filter Targets
runs-on: ubuntu-latest
outputs:
targets: ${{ steps.filter.outputs.targets }}
steps:
- name: Filter Java targets
id: filter
shell: bash
run: |
targets="${{ inputs.targets }}"
filtered=()
for t in $targets; do
[[ "$t" == //java/* ]] && filtered+=("$t")
done
if [ ${#filtered[@]} -eq 0 ]; then
echo "targets=//java/..." >> "$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:
os: [windows, macos]
browser: [chrome-beta, firefox-beta, edge]
run_type: [driver, grid]
with:
name: Browser Tests (${{ matrix.os }} - ${{ matrix.browser }} - ${{ matrix.run_type }})
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.run_type == 'grid' && format('{0}-remote', matrix.browser) || format('{0},-remote', 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 }}