name: build

on:
  push:
    paths-ignore:
      - '**/*.md'

concurrency:
  group: ${{github.workflow}}-${{github.event_name}}-${{github.ref}}
  cancel-in-progress: true

jobs:
  lint-and-build-g6:
    runs-on: macos-13
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Install Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 18

      - name: Install Dependencies
        run: |
          brew install python-setuptools pkg-config cairo pango libpng jpeg giflib librsvg

      - uses: pnpm/action-setup@v4
        name: Install pnpm
        with:
          version: 9
          run_install: false

      - name: Install Dependencies
        run: pnpm install --no-frozen-lockfile

      - name: Run CI
        run: |
          npm run ci

      - name: Run Playwright tests
        run: |
          pnpm exec playwright install chromium
          pnpm exec playwright test

      - name: Upload blob report to GitHub Actions Artifacts
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: report
          path: |
            packages/g6/__tests__/snapshots/**/*-actual.svg
            playwright-report/
          retention-days: 1

      - name: Coveralls GitHub Action
        uses: coverallsapp/github-action@v2.2.3
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
