name: Build

on:
  push: {}
  merge_group:
  pull_request:
    types:
      - opened
      - synchronize
      - ready_for_review

permissions:
  contents: read

jobs:
  build-mermaid:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18.x]
    steps:
      - uses: actions/checkout@v3

      - uses: pnpm/action-setup@v2
        # uses version from "packageManager" field in package.json

      - name: Setup Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          cache: pnpm
          node-version: ${{ matrix.node-version }}

      - name: Install Packages
        run: |
          pnpm install --frozen-lockfile
        env:
          CYPRESS_CACHE_FOLDER: .cache/Cypress

      - name: Run Build
        run: pnpm run build

      - name: Upload Mermaid Build as Artifact
        uses: actions/upload-artifact@v3
        with:
          name: mermaid-build
          path: packages/mermaid/dist

      - name: Upload Mermaid Mindmap Build as Artifact
        uses: actions/upload-artifact@v3
        with:
          name: mermaid-mindmap-build
          path: packages/mermaid-mindmap/dist
