Skip to content

Instantly share code, notes, and snippets.

@sujak
Forked from georgegach/gh-pages-deploy.sh
Created September 23, 2020 01:23
Show Gist options
  • Save sujak/103302d40f10c3d067004cb6ff2a7a0a to your computer and use it in GitHub Desktop.
Save sujak/103302d40f10c3d067004cb6ff2a7a0a to your computer and use it in GitHub Desktop.
Script to deploy a target directory to `gh-pages` branch and force server-side cache to update
#!/bin/bash
directory=_site
branch=gh-pages
build_command() {
jekyll build
}
echo -e "\033[0;32mDeleting existing $branch...\033[0m"
git push origin --delete $branch
git branch -D $branch
echo -e "\033[0;32mSetting up new $branch branch\033[0m"
git checkout --orphan $branch
git reset --hard
git commit --allow-empty -m "Init"
git checkout master
echo -e "\033[0;32mDeleting old content...\033[0m"
rm -rf $directory
echo -e "\033[0;32mChecking out $branch....\033[0m"
git worktree add $directory $branch
echo -e "\033[0;32mGenerating site...\033[0m"
build_command
echo -e "\033[0;32mDeploying $branch branch...\033[0m"
cd $directory &&
git add --all &&
git commit -m "Deploy updates" &&
git push origin $branch
echo -e "\033[0;32mCleaning up...\033[0m"
git worktree remove $directory
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment