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 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_dir="/var/www/$${HOST}" - backup_dir="~/backups/$${HOST}/$${HOST}-$${DRONE_STAGE_STARTED}" - make_backup_dir="mkdir -p $backup_dir" - copy_files="rsync -rP $host_dir/* $backup_dir" - host="$${USER}@$${HOST}" - ssh $host $make_backup_dir - ssh $host $copy_files #- 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"