43 lines
1.0 KiB
Bash
43 lines
1.0 KiB
Bash
|
#!/bin/sh
|
||
|
set -e
|
||
|
|
||
|
BUILD_DIR=$1
|
||
|
if [ ! -d "$BUILD_DIR" ]; then
|
||
|
echo "⛔️ Build dir does not exist"
|
||
|
exit 1
|
||
|
fi
|
||
|
echo "cd $BUILD_DIR"
|
||
|
cd "$BUILD_DIR"
|
||
|
|
||
|
REPO="https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
|
||
|
OWNER="$(echo $GITHUB_REPOSITORY | cut -d'/' -f 1)"
|
||
|
REPONAME="$(echo $GITHUB_REPOSITORY | cut -d'/' -f 2)"
|
||
|
PAGES_REPO="${OWNER}.github.io"
|
||
|
|
||
|
if [[ "$REPONAME" == "$PAGES_REPO" ]]; then
|
||
|
TARGET_BRANCH="master"
|
||
|
else
|
||
|
TARGET_BRANCH="gh-pages"
|
||
|
fi
|
||
|
|
||
|
: "${REMOTE_BRANCH:=$TARGET_BRANCH}"
|
||
|
|
||
|
git init
|
||
|
git config user.name "${GITHUB_ACTOR}"
|
||
|
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
|
||
|
|
||
|
if [ -z "$(git status --porcelain)" ]; then
|
||
|
echo "⚠️ Nothing to publish"
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
git remote rm origin || true
|
||
|
git remote add origin "${REPO}"
|
||
|
git add .
|
||
|
git commit --allow-empty -m 'Deploy to GitHub pages'
|
||
|
git push --force --quiet "$REPO" $REMOTE_BRANCH
|
||
|
rm -rf .git
|
||
|
|
||
|
cd "$GITHUB_WORKSPACE"
|
||
|
echo "🎉 Content of $BUILD_DIR has been deployed to GitHub Pages."
|