Skip to content

ci: speed up

ci: speed up #1794

Workflow file for this run

name: ci
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
CI: true
jobs:
install-deps:
runs-on: ubuntu-latest
steps:
- name: checkout code repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: nrwl/nx-set-shas@v4
- uses: ./.github/actions/setup
lint:
runs-on: ubuntu-latest
needs: install-deps
steps:
- name: checkout code repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: nrwl/nx-set-shas@v4
- uses: ./.github/actions/setup
- name: run lint
run: pnpm test:lint --format github
unit:
runs-on: ubuntu-latest
needs: install-deps
steps:
- name: checkout code repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: nrwl/nx-set-shas@v4
- uses: ./.github/actions/setup
- name: run unit tests
run: pnpm test:unit
e2e:
runs-on: ubuntu-latest
needs: install-deps
strategy:
fail-fast: false
matrix:
shard: [1, 2, 3, 4, 5]
steps:
- name: checkout code repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: nrwl/nx-set-shas@v4
- uses: ./.github/actions/setup
- name: install browsers
run: pnpm --filter=@milkdown/e2e test:install
- name: run playwright
run: pnpm test:e2e -- --forbid-only --shard=${{ matrix.shard }}/${{ strategy.job-total }}
- name: upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: test-results-e2e-${{ matrix.shard }}
path: e2e/playwright-report/
retention-days: 7
build-and-test:
if: ${{ always() }}
name: Build & Test
needs: [lint, unit, e2e]
runs-on: ubuntu-latest
steps:
- name: on error
if: ${{ needs.e2e.result != 'success' || needs.unit.result != 'success' || needs.lint.result != 'success' }}
run: exit 1