web/tools/deploy.sh

69 lines
1.1 KiB
Bash
Raw Normal View History

2020-07-28 21:27:40 +03:00
#!/bin/bash
#
# Deploy the content of _site to 'origin/<pages_branch>'
#
# v2.5
# https://github.com/cotes2020/jekyll-theme-chirpy
# © 2020 Cotes Chung
# Published under MIT License
set -eu
PAGES_BRANCH="gh-pages"
_no_branch=false
2020-09-01 06:53:14 +03:00
_backup_dir="$(mktemp -d)"
2020-07-28 21:27:40 +03:00
2020-09-01 06:53:14 +03:00
init() {
if [[ -z $(git branch -av | grep "$PAGES_BRANCH") ]]; then
_no_branch=true
git checkout -b "$PAGES_BRANCH"
else
git checkout "$PAGES_BRANCH"
fi
}
2020-07-28 21:27:40 +03:00
2020-09-01 06:53:14 +03:00
backup() {
mv _site "$_backup_dir"
mv .git "$_backup_dir"
2020-07-28 21:27:40 +03:00
2020-09-01 06:53:14 +03:00
# When adding custom domain from Github website,
# the CANME only exist on `gh-pages` branch
if [[ -f CNAME ]]; then
mv CNAME "$_backup_dir"
fi
}
2020-07-28 21:27:40 +03:00
2020-09-01 06:53:14 +03:00
flush() {
rm -rf ./*
rm -rf .[^.] .??*
2020-07-28 21:27:40 +03:00
2020-09-01 06:53:14 +03:00
shopt -s dotglob nullglob
mv "$_backup_dir"/* .
}
2020-07-28 21:27:40 +03:00
2020-09-01 06:53:14 +03:00
deoply() {
git config --global user.name "GitHub Actions"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
2020-07-28 21:27:40 +03:00
2020-09-01 06:53:14 +03:00
git update-ref -d HEAD
git add -A
git commit -m "[Automation] Site update No.${GITHUB_RUN_NUMBER}"
if [[ $_no_branch = true ]]; then
git push -u origin "$PAGES_BRANCH"
else
git push -f
fi
}
main() {
init
backup
flush
deoply
}
main