chore: bump up all non-major dependencies #4100
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| on: | |
| merge_group: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| install-deps: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| - uses: ./.github/actions/setup | |
| lint: | |
| runs-on: ubuntu-latest | |
| needs: install-deps | |
| steps: | |
| - name: Checkout code repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| - 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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| - uses: ./.github/actions/setup | |
| - name: Run unit tests | |
| run: pnpm test:unit | |
| build: | |
| runs-on: ubuntu-latest | |
| needs: install-deps | |
| steps: | |
| - name: Checkout code repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| - uses: ./.github/actions/setup | |
| - name: Build packages | |
| run: pnpm build | |
| - name: Build API docs | |
| run: pnpm --filter=@milkdown/docs run build | |
| - name: Publish snapshot | |
| if: ${{ github.event_name == 'pull_request' }} | |
| run: > | |
| ./node_modules/.bin/pkg-pr-new publish --pnpm | |
| ./packages/plugins/* | |
| ./packages/integrations/* | |
| ./packages/core | |
| ./packages/ctx | |
| ./packages/exception | |
| ./packages/components | |
| ./packages/transformer | |
| ./packages/prose | |
| ./packages/utils | |
| ./packages/kit | |
| ./packages/crepe | |
| cache-browsers: | |
| # Download Playwright browser binaries once and populate the cache before the | |
| # e2e shards start, so the shards restore instead of each downloading in parallel. | |
| runs-on: ubuntu-latest | |
| needs: install-deps | |
| steps: | |
| - name: Checkout code repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| - uses: ./.github/actions/setup | |
| - name: Cache Playwright browsers | |
| id: playwright-cache | |
| uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: ${{ runner.os }}-playwright-${{ hashFiles('pnpm-lock.yaml') }} | |
| # Binaries only; system libraries are per-runner and re-installed in each shard. | |
| - name: Download browsers | |
| if: steps.playwright-cache.outputs.cache-hit != 'true' | |
| run: pnpm --filter=@milkdown/e2e exec playwright install | |
| e2e: | |
| runs-on: ubuntu-latest | |
| needs: cache-browsers | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| shard: [1, 2, 3, 4, 5] | |
| steps: | |
| - name: Checkout code repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| - uses: ./.github/actions/setup | |
| - name: Build e2e | |
| run: | | |
| pnpm --filter=@milkdown/prose run build | |
| pnpm --filter=@milkdown/e2e run build | |
| - name: Cache Playwright browsers | |
| id: playwright-cache | |
| uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: ${{ runner.os }}-playwright-${{ hashFiles('pnpm-lock.yaml') }} | |
| - name: Install browsers and system dependencies | |
| if: steps.playwright-cache.outputs.cache-hit != 'true' | |
| run: pnpm --filter=@milkdown/e2e test:install | |
| - name: Install browser system dependencies | |
| if: steps.playwright-cache.outputs.cache-hit == 'true' | |
| run: pnpm --filter=@milkdown/e2e exec playwright install-deps | |
| - name: Run playwright | |
| run: pnpm test:e2e --forbid-only --shard=${{ matrix.shard }}/${{ strategy.job-total }} | |
| - name: Upload blob report | |
| if: ${{ !cancelled() }} | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: blob-report-${{ matrix.shard }} | |
| path: e2e/blob-report/ | |
| retention-days: 7 | |
| - name: Upload test results | |
| if: ${{ failure() }} | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: test-results-e2e-${{ matrix.shard }} | |
| path: e2e/test-results/ | |
| retention-days: 7 | |
| merge-reports: | |
| # Merge shard blob reports into one HTML report. Runs even if some shards failed, | |
| # but not on cancellation. Report-only: does not gate the `summary` status. | |
| if: ${{ !cancelled() }} | |
| needs: e2e | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| - uses: ./.github/actions/setup | |
| - name: Download blob reports | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | |
| with: | |
| path: e2e/all-blob-reports | |
| pattern: blob-report-* | |
| merge-multiple: true | |
| - name: Merge blob reports into HTML report | |
| run: pnpm --filter=@milkdown/e2e exec playwright merge-reports --reporter html ./all-blob-reports | |
| - name: Upload HTML report | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: playwright-html-report | |
| path: e2e/playwright-report/ | |
| retention-days: 14 | |
| summary: | |
| if: ${{ always() }} | |
| needs: [install-deps, cache-browsers, lint, unit, e2e, build] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: On error | |
| if: ${{ always() && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) }} | |
| run: exit 1 |