---
kind: pipeline
type: docker
name: default

steps:
  - name: debug
    image: alpine
    commands:
      - 'echo "Repository: glenux/service-monica"'
      - 'echo "Git commit: ${DRONE_COMMIT_SHA:0:8}"'

  - name: publish:commit_sha
    image: plugins/docker
    # pull: never
    # volumes:
    #   - name: cache
    #     path: /stupid
    environment:
      DOCKER_REPO: glenux/service-monica
    settings:
      username:
        from_secret: DOCKERHUB_USERNAME
      password:
        from_secret: DOCKERHUB_PASSWORD
      cache_from: "glenux/service-monica:${DRONE_BRANCH/\\//-}_latest"
      repo: glenux/service-monica
      tags:
        - "${DRONE_BRANCH/\\//-}_${DRONE_COMMIT_SHA:0:8}"
        - "${DRONE_BRANCH/\\//-}_latest"
        - "latest"
      purge: false
    when:
      branch:
        - "master"
        - "develop"
        - "feature/*"

  - name: deploy:dokku
    image: alpine
    when:
      branch:
        - master
    environment:
      SSH_USER:
        from_secret: SSH_USER
      SSH_HOST:
        from_secret: SSH_HOST
      SSH_PRIVATE_KEY:
        from_secret: SSH_PRIVATE_KEY
    commands:
      - echo $SSH_USER
      - echo $SSH_HOST
      - echo $SSH_PRIVATE_KEY
      - apk update && apk add openssh-client
      - mkdir -p ~/.ssh && chmod 700 ~/.ssh
      - echo "$SSH_PRIVATE_KEY" | base64 -d > ~/.ssh/deploy_key
      - chmod 600 ~/.ssh/deploy_key
      - ssh-keygen -f ~/.ssh/deploy_key -y > ~/.ssh/deploy_key.pub
      - "cat ~/.ssh/deploy_key.pub | cut -f3 -d' '"
      - ssh -o StrictHostKeyChecking=no
          -i ~/.ssh/deploy_key
          "$SSH_USER@$SSH_HOST"
          git:from-image prm
          "glenux/service-monica:${DRONE_BRANCH/\\//-}_${DRONE_COMMIT_SHA:0:8}"
      #
      - echo "SUCCESS"

# volumes:
#   - name: cache
#     temp: {}
#