blob: bc66e1e7254bda515145c9169436763c978ebbec [file] [edit]
name: CI - .NET
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:
build:
name: Build
if: ${{ inputs.run-full-suite }}
uses: ./.github/workflows/bazel.yml
with:
name: Build
os: windows
run: bazel build //dotnet:all
filter-targets:
name: Filter Targets
runs-on: ubuntu-latest
outputs:
targets: ${{ steps.filter.outputs.targets }}
steps:
- name: Filter .NET targets
id: filter
shell: bash
run: |
targets="${{ inputs.targets }}"
filtered=()
for t in $targets; do
[[ "$t" == //dotnet/* ]] && filtered+=("$t")
done
if [ ${#filtered[@]} -eq 0 ]; then
echo "targets=//dotnet/..." >> "$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]
protocol: [classic, bidi]
os: [windows]
include:
- browser: safari
os: macos
protocol: classic
with:
name: Browser Tests - ${{ matrix.browser }} ${{ matrix.protocol }}, ${{ matrix.os }}
os: ${{ matrix.os }}
browser: ${{ matrix.browser }}
rerun-with-debug: true
run: >
bazel test
--keep_going
--build_tests_only
--flaky_test_attempts 3
--local_test_jobs 1
--test_tag_filters="${{ matrix.browser }},${{ matrix.protocol == 'bidi' && 'bidi' || '-bidi' }}"
--test_size_filters=large
--pin_browsers=false
--test_env=SE_FORCE_BROWSER_DOWNLOAD=true
--test_env=SE_SKIP_DRIVER_IN_PATH=true
${{ needs.filter-targets.outputs.targets }}