blob: 5fdcaa1edd7fce712541225be6faf29252b740ae [file] [edit]
name: CI - Ruby
on:
workflow_call:
inputs:
targets:
required: false
type: string
default: '//rb/...'
workflow_dispatch:
permissions:
contents: read
jobs:
lint:
name: Lint
uses: ./.github/workflows/bazel.yml
with:
name: Lint
run: ./go rb:lint
# jruby is exercised on RBE; minimum MRI is exercised by os-tests. This matrix
# covers truffleruby and the most recent MRI release.
unit-tests:
name: Unit Tests
uses: ./.github/workflows/bazel.yml
strategy:
fail-fast: false
matrix:
include:
- ruby-version: 4.0.4
os: ubuntu
- ruby-version: truffleruby-34.0.1
os: ubuntu
with:
name: Unit Tests (${{ matrix.ruby-version }}, ${{ matrix.os }})
os: ${{ matrix.os }}
ruby-version: ${{ matrix.ruby-version }}
rerun-with-debug: true
run: >
bazel test
--keep_going
--test_size_filters small
//rb/spec/...
os-tests:
name: ${{ matrix.os }}-tests
uses: ./.github/workflows/bazel.yml
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu
browser: yes
tag-filters: unit,skip-rbe
- os: windows
browser: yes
tag-filters: edge,chrome-beta-bidi,firefox-beta-bidi,unit,os-sensitive,skip-rbe
- os: macos
browser: safari
tag-filters: chrome-beta-bidi,firefox-beta-bidi,unit,os-sensitive,skip-rbe
with:
name: ${{ matrix.os }}-tests
browser: ${{ matrix.browser }}
os: ${{ matrix.os }}
rerun-with-debug: true
run: >
./scripts/github-actions/bazel-test-if-targets.sh
--keep_going
--flaky_test_attempts 2
--local_test_jobs 1
--skip_incompatible_explicit_targets
--pin_browsers=false
--skip_incompatible_explicit_targets
--test_env=SE_FORCE_BROWSER_DOWNLOAD=true
--test_env=SE_SKIP_DRIVER_IN_PATH=true
--test_tag_filters=${{ matrix.tag-filters }}
${{ (github.event_name != 'schedule' && github.event_name != 'workflow_dispatch') && '--test_env=SKIP_PENDING=true' || '' }}
${{ inputs.targets || '//rb/...' }}