diff --git a/publish.sh b/publish.sh index 78268c8c..6cd4bfe9 100755 --- a/publish.sh +++ b/publish.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -uex +set -e SITE_ENV="prod" REPO=`git config remote.origin.url` @@ -8,19 +8,27 @@ SSH_REPO=${REPO/https:\/\/github.com\//git@github.com:} SHA=`git rev-parse --verify HEAD` SOURCE_BRANCH="source" TARGET_BRANCH="master" +BUILD_DIR=".build" -# Build front-end assets. +# Prepare the build directory. +mkdir -p $BUILD_DIR +cp -R .git $BUILD_DIR +pushd $BUILD_DIR +git checkout $TARGET_BRANCH || git checkout --orphan $TARGET_BRANCH +rm -r **/* || exit 0 +popd + +# Re-generate the site. npm run prod - -git config --local user.email "oliver@oliverdavies.uk" - vendor/bin/sculpin generate --no-interaction --clean --env=${SITE_ENV} touch output_${SITE_ENV}/.nojekyll # Add, commit and push the changes. -cd output_${SITE_ENV} -cp -R ../.git . -git checkout -f $TARGET_BRANCH || git checkout --orphan $TARGET_BRANCH +mv output_${SITE_ENV}/* $BUILD_DIR +pushd $BUILD_DIR git add --all . -git commit -m "Re-generate site. $SHA" +git commit -m "Re-generate site: $SHA" git push $SSH_REPO $TARGET_BRANCH +popd + +rm -rf $BUILD_DIR