kind: pipeline
type: docker
name: Build Main

trigger:
  event:
    - push
  branch:
    - main

steps:
  - name: restore-cache
    image: drillster/drone-volume-cache
    settings:
      restore: true
      mount:
        # - ./node_modules
        - ./.cache
        - ./public
    volumes:
      - name: cache
        path: /cache

  - name: build
    image: node:18
    commands:
      - yarn install
      - yarn build
      - du -sh public

  - name: rsync
    image: drillster/drone-rsync
    settings:
      user: ci
      key:
        from_secret: rsync_key
      hosts:
        - droplet.chuckdries.com
      exclude:
        - node_modules
        - .git*
      source: ./public/
      target: ~/www/personal-website
      delete: true
      recursive: true
      secrets: [rsync_key]

  - name: rebuild-cache
    image: drillster/drone-volume-cache
    settings:
      rebuild: true
      mount:
        # - ./node_modules
        - ./.cache
        - ./public
    volumes:
      - name: cache
        path: /cache

volumes:
  - name: cache
    host:
      path: /mnt/user/dronecache

# ---
# kind: pipeline
# type: docker
# name: Preview PR

# trigger:
#   event:
#     - pull_request

# steps:
#   - name: restore-cache
#     image: drillster/drone-volume-cache
#     settings:
#       restore: true
#       mount:
#         - ./node_modules
#         - ./.cache
#         - ./public
#     volumes:
#       - name: cache
#         path: /cache

#   - name: build
#     image: node
#     commands:
#       - yarn install
#       - PATH_PREFIX=/${DRONE_PULL_REQUEST} yarn build --prefix-paths
#       - du -sh public

#   - name: rsync
#     image: drillster/drone-rsync
#     settings:
#       user: ci
#       key:
#         from_secret: rsync_key
#       hosts:
#         - droplet.chuckdries.com
#       exclude:
#         - node_modules
#         - .git*
#       source: ./public/
#       target: ~/www/personal-website-preview/${DRONE_PULL_REQUEST}
#       prescript: cp -r ~/www/personal-website ~/www/personal-website-preview/${DRONE_PULL_REQUEST}
#       delete: true
#       recursive: true
#       secrets: [rsync_key]

#   - name: comment
#     image: jmccann/drone-github-comment:1
#     settings:
#       message: preview of ${DRONE_COMMIT} deployed to https://preview.chuckdries.com/${DRONE_PULL_REQUEST}
#       update: true
#       api_key:
#         from_secret: github_key
# # note: we intentionally do not rebuild-cache for PRs