name: Check Tasklist Carbonization

on:
  push:
    branches:
      - '*'
      - '!main'

jobs:
  Exec:
    name: Run visual regression
    runs-on: ubuntu-latest
    container:
      image: mcr.microsoft.com/playwright:v1.49.1
      options: --user 1001:1000
    steps:
      - name: Checkout form-js
        uses: actions/checkout@85e6279cec87321a52edac9c87bce653a07cf6c2
        with:
          path: form-js
      - name: Checkout Tasklist
        uses: actions/checkout@85e6279cec87321a52edac9c87bce653a07cf6c2
        with:
          repository: camunda/zeebe
          token: ${{ secrets.ADD_TO_HTO_PROJECT_PAT }}
          path: zeebe
          ref: 'main'
      - name: Setup form-js cache
        uses: actions/setup-node@802632921f8532d2409ae6eac3313b6f81f11122
        with:
          node-version: '20'
          cache: 'npm'
          cache-dependency-path: ./form-js/package-lock.json
      - name: Setup Tasklist cache
        uses: actions/setup-node@802632921f8532d2409ae6eac3313b6f81f11122
        with:
          node-version: '20'
          cache: 'yarn'
          cache-dependency-path: ./zeebe/tasklist/client/yarn.lock
      - name: Install form-js deps
        run: npm ci
        working-directory: ./form-js
      - name: Build form-js
        run: npm run build
        working-directory: ./form-js
      - name: Create form-js-viewer link
        run: yarn link
        working-directory: ./form-js/packages/form-js-viewer
      - name: Link form-js-viewer
        run: yarn link "stitfr-form-js-viewer"
        working-directory: ./zeebe/tasklist/client
      - name: Create form-js-carbon-styles link
        run: yarn link
        working-directory: ./form-js/packages/form-js-carbon-styles
      - name: Link form-js-carbon-styles
        run: yarn link "@bpmn-io/form-js-carbon-styles"
        working-directory: ./zeebe/tasklist/client
      - name: Install Tasklist deps
        run: yarn
        working-directory: ./zeebe/tasklist/client
      - name: Build Tasklist
        run: yarn build:visual-regression
        working-directory: ./zeebe/tasklist/client
      - name: Start server
        working-directory: ./zeebe/tasklist/client
        run: yarn start:visual-regression &
      - name: Run Playwright tests
        working-directory: ./zeebe/tasklist/client
        run: yarn playwright form-js-integration
      - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08
        if: always()
        with:
          name: playwright-report
          path: ./zeebe/tasklist/client/playwright-report/
          retention-days: 30
