2022-09-27 09:32:11 +02:00
|
|
|
kind: pipeline
|
|
|
|
type: docker
|
|
|
|
name: deploy
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: submodules
|
|
|
|
image: archlinux
|
|
|
|
commands:
|
2023-09-10 17:10:33 +02:00
|
|
|
- pacman -Syu --noconfirm git git-lfs >/dev/null
|
2022-12-15 22:04:19 +01:00
|
|
|
- git lfs install
|
2022-09-27 09:32:11 +02:00
|
|
|
- git submodule update --init --recursive
|
2022-12-15 22:04:19 +01:00
|
|
|
- cd blog
|
|
|
|
- echo $(pwd)
|
|
|
|
- git lfs install
|
|
|
|
- git lfs fetch --all
|
|
|
|
- git lfs ls-files
|
2022-09-27 09:32:11 +02:00
|
|
|
|
|
|
|
- name: build
|
|
|
|
image: archlinux
|
|
|
|
environment:
|
2024-06-08 13:22:20 +02:00
|
|
|
PYTHON_ENV: pyenv python python-pipenv python-setuptools
|
2022-09-27 09:32:11 +02:00
|
|
|
|
|
|
|
commands:
|
|
|
|
# set up python
|
2022-11-13 14:59:12 +01:00
|
|
|
- pacman -Syu --noconfirm
|
2022-09-27 09:32:11 +02:00
|
|
|
- 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
|
2022-09-27 09:32:11 +02:00
|
|
|
|
2022-09-27 09:32:11 +02:00
|
|
|
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
|
|
|
|
|
|
|
|
# prepare vars for host operations
|
|
|
|
- host_dir="/var/www/$${HOST}"
|
|
|
|
- backup_dir="~/backups/$${HOST}/$${HOST}-$${DRONE_STAGE_STARTED}"
|
|
|
|
- host="$${USER}@$${HOST}"
|
|
|
|
|
|
|
|
# tasks
|
|
|
|
- make_backup_dir="mkdir -p $backup_dir"
|
|
|
|
- copy_backup_files="rsync -rP $host_dir $backup_dir"
|
|
|
|
- delete_current_files="sudo -n rm -r $host_dir"
|
|
|
|
- deploy_new_files="sudo -n mv $${HOST} $host_dir"
|
|
|
|
|
|
|
|
# archive old site
|
|
|
|
- ssh $host $make_backup_dir
|
|
|
|
- ssh $host $copy_backup_files
|
|
|
|
|
|
|
|
# deploy new site
|
|
|
|
- rsync -rP site/* "$host:$${HOST}"
|
|
|
|
- ssh $host $delete_current_files
|
|
|
|
- ssh $host $deploy_new_files
|
2022-09-28 02:24:45 +02:00
|
|
|
when:
|
|
|
|
branch:
|
|
|
|
- main
|
2022-09-28 02:30:25 +02:00
|
|
|
event:
|
|
|
|
exclude:
|
|
|
|
- pull_request
|
2022-09-27 09:32:11 +02:00
|
|
|
|