name: Publish @notesnook/web

on: workflow_dispatch

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Setup Node
        uses: actions/setup-node@v3
        with:
          node-version: 16.x
          cache: "npm"
          cache-dependency-path: |
            apps/mobile/package-lock.json
            apps/web/package-lock.json
            packages/core/package-lock.json
            packages/crypto/package-lock.json
            packages/crypto-worker/package-lock.json
            packages/editor-mobile/package-lock.json
            packages/editor/package-lock.json
            packages/logger/package-lock.json
            packages/streamable-fs/package-lock.json
            packages/theme/package-lock.json

      - name: Install packages
        run: |
          npm i --ignore-scripts --prefer-offline --no-audit
          npx lerna bootstrap --ignore=@notesnook/mobile -- --prefer-offline --no-audit

      - name: Setup environment
        run: |
          echo "NX_CLOUD_ACCESS_TOKEN=${{ secrets.NX_CLOUD_ACCESS_TOKEN }}" >> $GITHUB_ENV
          echo "CLOUDFLARE_ACCOUNT_ID=${{ secrets.CLOUDFLARE_ACCOUNT_ID }}" >> $GITHUB_ENV
          echo "CLOUDFLARE_API_TOKEN=${{ secrets.CLOUDFLARE_API_TOKEN }}" >> $GITHUB_ENV

      - name: Generate desktop build
        run: npm run build:web

      - name: Publish on Cloudflare Pages
        run: npx --yes wrangler pages publish --project-name=notesnook-app ./apps/web/build/
