kind: pipeline
name: default
steps:
  - name: release
    image: plugins/gitea-release
    settings:
      api_key:
        from_secret: gitea_api_key
      base_url: https://code.garrettmills.dev
      checksum: md5
      title: ${DRONE_TAG}
    when:
      event: tag
  - name: deploy to production
    image: appleboy/drone-ssh
    settings:
      host:
        from_secret: deploy_ssh_host
      username:
        from_secret: deploy_ssh_user
      key:
        from_secret: deploy_ssh_key
      port:
        from_secret: deploy_ssh_port
      script:
        - cd /home/coreid/CoreID
        - git checkout master
        - git pull
        - git checkout ${DRONE_TAG}
        - git pull
        - yarn install
    when:
      event: promote
      target: production
  - name: restart production services
    image: appleboy/drone-ssh
    settings:
      host:
        from_secret: deploy_ssh_host
      username:
        from_secret: deploy_ssh_admin_user
      key:
        from_secret: deploy_ssh_key
      port:
        from_secret: deploy_ssh_port
      script:
        - systemctl restart coreid-www
        - systemctl restart coreid-jobs
    when:
      event: promote
      target: production
  - name: send success notifications
    image: plugins/webhook
    settings:
      urls:
        from_secret: notify_webhook_url
      content_type: application/json
      template: |
        {
          "title": "Drone-CI [Starship/CoreID]",
          "message": "Build ${DRONE_BUILD_NUMBER} promoted to production.",
          "priority": 4
        }
    when:
      status: success
      event:
        - tag
        - promote
  - name: send error notifications
    image: plugins/webhook
    settings:
      urls:
        from_secret: notify_webhook_url
      content_type: application/json
      template: |
        {
          "title": "Drone-CI [Starship/CoreID]",
          "message": "An error was encountered while promoting build ${DRONE_BUILD_NUMBER} to production.",
          "priority": 6
        }
    when:
      status: failure
      event:
        - tag
        - promote

