kind: pipeline
type: docker
name: deploy

steps:
- name: submodules
  image: archlinux
  commands: 
  - pacman -Sy --noconfirm git >/dev/null
  - git submodule update --init --recursive

- name: build
  image: archlinux
  environment:
    PYTHON_ENV: python python-pipenv python-setuptools
  when:
    branch:
    - drone

  commands:
    # set up python
    - pacman -Sy --noconfirm make $PYTHON_ENV > /dev/null
    - pipenv install

    # build site
    - make all

- name: deploy
  image: ubuntu
  environment:
    HOST:
      from_secret: host
    USER:
      from_secret: user
    SSH_KEY:
      from_secret: ssh_key
    HOST_DIR: "/var/www/$${HOST}"
    BACKUP_DIR: "~/backups/$${HOST}/$${HOST}-$${DRONE_STAGE_STARTED}"

  when:
    branch:
    - drone

  commands:
    # install deps
    - apt-get update -qq > /dev/null
    - apt-get install ssh rsync -qq > /dev/null

    #  configure ssh
    - eval $(ssh-agent -s)
    - mkdir -p ~/.ssh
    - echo "$SSH_KEY" > ~/.ssh/id_rsa
    - chmod 600 ~/.ssh/id_rsa
    - ssh-add
    - echo "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config

    # run operations on remote host
    - host="$${USER}@$${HOST}"

    - ssh $host "ls $HOST_DIR"
    - ssh $host "mkdir -p $BACKUP_DIR"
    - ssh $host "rsync -rP $HOST_DIR/* $BACKUP_DIR"

      #- ssh $host 'echo "$host_dir -> $backup_dir"'
      #- ssh $host "mkdir -p $backup_dir"
      #- ssh $host "rsync -rP /var/www/${HOST}/* ${DRONE_STAGE_STARTED}"
      #- ssh $host "ls site" 

      #- ssh 
      #- ssh "$${USER}@$${HOST}" "[[ ! -d ~/gemini/content ]] || rm -r ~/gemini/content"
      #- rsync -rP content "$${USER}@$${HOST}:gemini"