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

steps:
  - name: debug
    image: alpine
    commands:
      - 'echo "Repository: glenux/service-nextcloud"'
      - '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-nextcloud
      DOCKER_BUILDKIT: 1
    settings:
      username:
        from_secret: DOCKERHUB_USERNAME
      password:
        from_secret: DOCKERHUB_PASSWORD
      cache_from:
        - "glenux/service-nextcloud:${DRONE_BRANCH/\\//-}_latest"
      repo: glenux/service-nextcloud
      tags: "${DRONE_COMMIT_SHA:0:8}"
      purge: false

  - name: publish:commit_branch
    image: plugins/docker
    # volumes:
    #   - name: cache
    #     path: /stupid
    environment:
      DOCKER_BUILDKIT: 1
    settings:
      username:
        from_secret: DOCKERHUB_USERNAME
      password:
        from_secret: DOCKERHUB_PASSWORD
      cache_from:
        - "glenux/service-nextcloud:${DRONE_COMMIT_SHA:0:8}"
        - "glenux/service-nextcloud:${DRONE_BRANCH/\\//-}_latest"
      repo: glenux/service-nextcloud
      tags: "${DRONE_BRANCH/\\//-}_latest"
      purge: false
    when:
      branch:
        - "master"
        - "develop"
        - "feature/*"

  - name: publish:latest
    image: plugins/docker
    environment:
      DOCKER_BUILDKIT: 1
    settings:
      username:
        from_secret: DOCKERHUB_USERNAME
      password:
        from_secret: DOCKERHUB_PASSWORD
      cache_from:
        - "glenux/service-nextcloud:${DRONE_COMMIT_SHA:0:8}"
        - "glenux/service-nextcloud:${DRONE_BRANCH/\\//-}_latest"
      repo: glenux/service-nextcloud
      tags: latest
      purge: false
    when:
      branch:
        - master

  - 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 -o StrictHostKeyChecking=no
            -i ~/.ssh/deploy_key
            "$SSH_USER@$SSH_HOST"
            git:from-image cloud
            "glenux/service-nextcloud:${DRONE_COMMIT_SHA:0:8}"
            #
      - echo "SUCCESS"

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