Skip to content

Instantly share code, notes, and snippets.

@jamesfacts
Last active April 8, 2021 03:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save jamesfacts/45b8726b2b4418285fa3acc37988990c to your computer and use it in GitHub Desktop.
Save jamesfacts/45b8726b2b4418285fa3acc37988990c to your computer and use it in GitHub Desktop.
FOLDER=wp-content/themes/
if [ "production" == "${CI_ENVIRONMENT_NAME}" ]; then
WPE_INSTALL=prod_install
elif [ "staging" == "${CI_ENVIRONMENT_NAME}" ]; then
WPE_INSTALL=staging_install
else
WPE_INSTALL=dev_install
fi
# Make a theme folder
mkdir $THEME_NAME
shopt -s extglob
mv !(${THEME_NAME}) ${THEME_NAME}
mv .editorconfig ${THEME_NAME}/.editorconfig
mv .eslintrc ${THEME_NAME}/.eslintrc
rm -rf .git
rm -rf ${THEME_NAME}/.git
rm .gitignore
rm ${THEME_NAME}/.gitignore
# build a WP install / dir structure EXACTLY like WPE from root
#####################################################################
mkdir -p $FOLDER
mv .gitignoredeploy .gitignore
mv $THEME_NAME $FOLDER
# Git config while still at WP root
#####################################################################
git config --global user.email "${WPE_INSTALL}@${WPE_INSTALL}.com"
git config --global user.name "${WPE_INSTALL}"
git init
git remote add origin git@git.wpengine.com:${WPE_ENVIRONMENT}/${WPE_INSTALL}.git
ssh git@git.wpengine.com info
# build theme
#####################################################################
cd wp-content/themes/${THEME_NAME}
composer install --no-ansi --no-dev --no-interaction --optimize-autoloader --no-progress
yarn
yarn build:production
cd ../../../
# push
#####################################################################
git add .
git status
git ls-tree -r master --name-only
git commit -m "Deployment Commit"
git push origin master --force
@trainoasis
Copy link

Hey, Indeed, Github is way faster yeah, Gitlab's CI is slow AF unfortunately (especially cache).

Yes, you understood correctly. Of course, CI is meant to run on the server somewhere, that's why I'm rewritting. My other non-WP projects already have CI/CD set-up like this, just wasn't sure about Bedrock/Sage so I chimed in here.

One problem I see is also getting premium composer packages (currently hosted privately) and updated as required. That's why I was doing it from a local machine.

I did rewrite it now using gitlab's CI though, and works as expected. If it helps someone, I'm posting it here: https://github.com/trainoasis/deploy-wp-bedrock-sage-gitlab-ci/

@jamesfacts
Copy link
Author

ah cool, that is a clever solution! Putting this in my back pocket just in case. TBH I just manage premium composer packages manually, it's not a situation I run into often.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment