kind: pipeline
name: default
steps:
  # =============== RELEASE ===============
  - name: release
    image: plugins/gitea-release
    settings:
      api_key:
        from_secret: gitea_api_key
      base_url: https://code.garrettmills.dev
      title: ${DRONE_TAG}
    when:
      event: tag

  # =============== DEPLOY TO DEV SITE ===============
  - name: deploy repo to staging site
    image: appleboy/drone-ssh
    settings:
      host:
        from_secret: dev_site_host
      username:
        from_secret: dev_site_user
      key:
        from_secret: dev_site_key
      port: 22
      script:
        - cd /etc/glmdev/noded/backend
        - git checkout master
        - git pull
        - git checkout ${DRONE_COMMIT}
        - yarn install
        - systemctl restart noded-dev
    when:
      event: promote
      target: staging

  # =============== DEPLOY TO PROD SITE ===============
  - name: deploy repo to production site
    image: appleboy/drone-ssh
    settings:
      host:
        from_secret: prod_site_host
      username:
        from_secret: prod_site_user
      key:
        from_secret: prod_site_key
      port: 22
      script:
        - cd /etc/glmdev/noded-prod/backend
        - git checkout master
        - git pull
        - git checkout ${DRONE_COMMIT}
        - yarn install
        - systemctl restart noded
    when:
      event: promote
      target: production

  # =============== NOTIFICATIONS ===============
  - name: send success notifications
    image: plugins/webhook
    settings:
      urls:
        from_secret: notify_webhook_url
      content_type: application/json
      template: |
        {
          "title": "Drone-CI [noded-backend]",
          "message": "Build ${DRONE_BUILD_NUMBER} completed successfully.",
          "priority": 4
        }
    when:
      status: success
  - name: send error notifications
    image: plugins/webhook
    settings:
      urls:
        from_secret: notify_webhook_url
      content_type: application/json
      template: |
        {
          "title": "Drone-CI [noded-backend]",
          "message": "Build ${DRONE_BUILD_NUMBER} failed!",
          "priority": 6
        }
    when:
      status: failure