kind: pipeline
type: docker
name: venue_reservation_manage

steps:
  - name: prepare
    image: node:18-alpine
    volumes:
      - name: node-model
        path: /app/model
      - name: node-cache
        path: /app/cache
      - name: node-build
        path: /app/build
    commands:
      - npm install -g pnpm
      - pnpm config set store-dir /app/model
      - pnpm config set registry https://registry.npmjs.org
      
      # 检查是否存在 pnpm-lock.yaml，不存在则生成
      - |
        if [ ! -f "pnpm-lock.yaml" ]; then
          echo "pnpm-lock.yaml 不存在，正在生成..."
          pnpm install --lockfile-only
        fi
      
      - pnpm install --frozen-lockfile
      - pnpm run build
      - cp -r dist /app/build/
      - cp Dockerfile /app/build/
      - cp default.conf /app/build/
      - cp run.sh /app/build/

  - name: build
    image: plugins/docker
    volumes:
      - name: node-build
        path: /app/build
      - name: docker
        path: /var/run/docker.sock
    settings:
      dockerfile: /app/build/Dockerfile
    commands:
      - cd /app/build
      - chmod +x run.sh
      - sh run.sh
      - docker ps

volumes:
  - name: node-build
    host:
      path: /home/docker/drone/node/build
  - name: node-model
    host:
      path: /home/docker/drone/node/model
  - name: node-cache
    host:
      path: /home/docker/drone/node/cache
  - name: docker
    host:
      path: /var/run/docker.sock