Skip to content

Only run CI e2e tests on approved PRs #13185

Only run CI e2e tests on approved PRs

Only run CI e2e tests on approved PRs #13185

Workflow file for this run

name: Lexical Tests
on:
push:
branches:
- main
paths-ignore:
- 'packages/lexical-website/**'
pull_request:
types: [opened, synchronize, reopened]
paths-ignore:
- 'packages/lexical-website/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
integrity:
if: github.repository_owner == 'facebook'
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.11.0]
env:
CI: true
GITHUB_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }}
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
- name: Install dependencies
run: npm ci
- run: npm run ci-check
- run: npm run build
- run: npm run build-www
unit:
if: github.repository_owner == 'facebook'
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.18.0]
env:
CI: true
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
- name: Install dependencies
run: npm ci
- run: npm run test-unit
integration:
if: github.repository_owner == 'facebook'
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.18.0]
env:
CI: true
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
- name: Install dependencies
run: npm ci
- run: npm run test-integration
e2e-mac:
if: github.repository_owner == 'facebook' && github.event.review.state == 'APPROVED'
strategy:
matrix:
node-version: [18.18.0]
browser: ['chromium', 'firefox', 'webkit']
editor-mode: ['rich-text', 'plain-text']
events-mode: ['legacy-events', 'modern-events']
uses: ./.github/workflows/e2e-test.yml
with:
os: 'macos-latest'
node-version: ${{ matrix.node-version }}
browser: ${{ matrix.browser }}
editor-mode: ${{ matrix.editor-mode }}
events-mode: ${{ matrix.events-mode }}
e2e-linux:
if: github.repository_owner == 'facebook' && github.event.review.state == 'APPROVED'
strategy:
matrix:
node-version: [18.18.0]
browser: ['chromium', 'firefox']
editor-mode: ['rich-text', 'plain-text']
events-mode: ['legacy-events', 'modern-events']
uses: ./.github/workflows/e2e-test.yml
with:
os: 'ubuntu-latest'
node-version: ${{ matrix.node-version }}
browser: ${{ matrix.browser }}
editor-mode: ${{ matrix.editor-mode }}
events-mode: ${{ matrix.events-mode }}
e2e-windows:
if: github.repository_owner == 'facebook' && (
github.event.review.state == 'APPROVED' ||
(github.event_name == 'pull_request' && contains(fromJson('["COLLABORATOR","MEMBER","OWNER",]'), github.event.pull_request.author_association))
)
strategy:
matrix:
node-version: [18.18.0]
browser: ['chromium', 'firefox']
editor-mode: ['rich-text', 'plain-text']
events-mode: ['legacy-events', 'modern-events']
uses: ./.github/workflows/e2e-test.yml
with:
os: 'windows-latest'
node-version: ${{ matrix.node-version }}
browser: ${{ matrix.browser }}
editor-mode: ${{ matrix.editor-mode }}
events-mode: ${{ matrix.events-mode }}
e2e-collab-mac:
if: github.repository_owner == 'facebook' && github.event.review.state == 'APPROVED'
strategy:
matrix:
node-version: [18.18.0]
browser: ['chromium', 'firefox', 'webkit']
uses: ./.github/workflows/e2e-test.yml
with:
os: 'macos-latest'
node-version: ${{ matrix.node-version }}
browser: ${{ matrix.browser }}
editor-mode: 'rich-text-with-collab'
events-mode: 'modern-events'
e2e-collab-linux:
if: github.repository_owner == 'facebook' && github.event.review.state == 'APPROVED'
strategy:
matrix:
node-version: [18.18.0]
browser: ['chromium', 'firefox']
uses: ./.github/workflows/e2e-test.yml
with:
os: 'ubuntu-latest'
node-version: ${{ matrix.node-version }}
browser: ${{ matrix.browser }}
editor-mode: 'rich-text-with-collab'
events-mode: 'modern-events'
e2e-collab-windows:
if: github.repository_owner == 'facebook' && github.event.review.state == 'APPROVED'
strategy:
matrix:
node-version: [18.18.0]
browser: ['chromium', 'firefox']
uses: ./.github/workflows/e2e-test.yml
with:
os: 'windows-latest'
node-version: ${{ matrix.node-version }}
browser: ${{ matrix.browser }}
editor-mode: 'rich-text-with-collab'
events-mode: 'modern-events'
e2e-prod:
if: github.repository_owner == 'facebook' && github.event.review.state == 'APPROVED'
strategy:
matrix:
os: ['macos-latest']
node-version: [18.18.0]
browser: ['chromium']
editor-mode: ['rich-text']
events-mode: ['modern-events']
uses: ./.github/workflows/e2e-test.yml
with:
prod: true
os: ${{ matrix.os }}
node-version: ${{ matrix.node-version }}
browser: ${{ matrix.browser }}
editor-mode: ${{ matrix.editor-mode }}
events-mode: ${{ matrix.events-mode }}
e2e-collab-prod:
if: github.repository_owner == 'facebook' && github.event.review.state == 'APPROVED'
strategy:
matrix:
os: ['macos-latest']
node-version: [18.18.0]
browser: ['chromium']
editor-mode: ['rich-text-with-collab']
events-mode: ['modern-events']
uses: ./.github/workflows/e2e-test.yml
with:
prod: true
os: ${{ matrix.os }}
node-version: ${{ matrix.node-version }}
browser: ${{ matrix.browser }}
editor-mode: ${{ matrix.editor-mode }}
events-mode: ${{ matrix.events-mode }}