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"