add rebuild script
This commit is contained in:
parent
2de138d93d
commit
73ae694ef1
|
@ -13,6 +13,9 @@ Basic nodejs script to print a message and a youtube video, used as a message wh
|
|||
## githook.sh
|
||||
Pixelplanet has its own git repository for deployment on the live system, if an commit get pushed to it, it will automatically build the canvas and deploy it. This hook is managing that on the server.
|
||||
|
||||
## rebuild.sh
|
||||
script to manually trigger rebuilding and restarting pixelplanet on the server
|
||||
|
||||
## Some notes:
|
||||
Cloudflare Caching Setting `Broser Cache Expiration` should be set to `Respect Existing Headers` or it would default to 4h, which is unreasonable for chunks.
|
||||
Additinally make sure that cachebreakers get blocked by setting Cloudflare Firewall rules to block empty query strings at least for chunks
|
||||
|
|
86
deployment/rebuild.sh
Executable file
86
deployment/rebuild.sh
Executable file
|
@ -0,0 +1,86 @@
|
|||
#!/bin/bash
|
||||
# Rebuild from master branch and restart pixelplanet
|
||||
|
||||
#folder for building the canvas (the git repository will get checkout there and the canvas will get buil thtere)
|
||||
BUILDDIR="/home/pixelpla/pixelplanet-build"
|
||||
#folder for dev canvas
|
||||
DEVFOLDER="/home/pixelpla/pixelplanet-dev"
|
||||
#folder for shards
|
||||
SCBFOLDER="/home/pixelpla/pixelplanet-scb"
|
||||
SCCFOLDER="/home/pixelpla/pixelplanet-scc"
|
||||
SCDFOLDER="/home/pixelpla/pixelplanet-scd"
|
||||
SCEFOLDER="/home/pixelpla/pixelplanet-sce"
|
||||
SCFFOLDER="/home/pixelpla/pixelplanet-scf"
|
||||
SCGFOLDER="/home/pixelpla/pixelplanet-scg"
|
||||
SCHFOLDER="/home/pixelpla/pixelplanet-sch"
|
||||
#folder for production canvas
|
||||
PFOLDER="/home/pixelpla/pixelplanet"
|
||||
#which branch to use
|
||||
BRANCH="master"
|
||||
|
||||
should_reinstall () {
|
||||
local TMPFILE="${BUILDDIR}/package.json.${1}.tmp"
|
||||
local NODEDIR="${BUILDDIR}/node_modules"
|
||||
local ORFILE="${BUILDDIR}/package.json"
|
||||
[ -f "${TMPFILE}" ] && [ -d "${NODEDIR}" ] && diff -q "${TMPFILE}" "${ORFILE}" && {
|
||||
echo "package.json stil the same, no need to rerun npm install."
|
||||
return 1
|
||||
}
|
||||
cp "${ORFILE}" "${TMPFILE}"
|
||||
echo "package.json changed, need to run npm install."
|
||||
return 0
|
||||
}
|
||||
|
||||
npm_reinstall () {
|
||||
rm -rf node_modules
|
||||
rm package-lock.json
|
||||
npm install
|
||||
}
|
||||
|
||||
copy () {
|
||||
local TARGETDIR="${1}"
|
||||
local REINSTALL="${2}"
|
||||
cp -r dist/*.js "${TARGETDIR}/"
|
||||
cp -r dist/workers "${TARGETDIR}/"
|
||||
rm -rf "${TARGETDIR}/public/assets"
|
||||
cp -r dist/public "${TARGETDIR}/"
|
||||
cp -r dist/captchaFonts "${TARGETDIR}/"
|
||||
cp -r dist/package.json "${TARGETDIR}/"
|
||||
cp -r dist/assets.json "${TARGETDIR}/"
|
||||
cp -r dist/styleassets.json "${TARGETDIR}/"
|
||||
mkdir -p "${TARGETDIR}/log"
|
||||
cd "${TARGETDIR}"
|
||||
[ $REINSTALL -eq 0 ] && npm_reinstall
|
||||
pm2 start ecosystem.yml
|
||||
cd -
|
||||
}
|
||||
|
||||
GIT_WORK_TREE="$BUILDDIR" GIT_DIR="${BUILDDIR}/.git" git fetch --all
|
||||
cd "$BUILDDIR"
|
||||
echo "---UPDATING REPO ON PRODUCTION SERVER---"
|
||||
GIT_WORK_TREE="$BUILDDIR" GIT_DIR="${BUILDDIR}/.git" git reset --hard "origin/${BRANCH}"
|
||||
echo "---BUILDING pixelplanet---"
|
||||
should_reinstall master
|
||||
DO_REINSTALL=$?
|
||||
[ $DO_REINSTALL -eq 0 ] && npm_reinstall
|
||||
npm run build
|
||||
echo "---RESTARTING CANVAS---"
|
||||
pm2 stop ppfun-server
|
||||
pm2 stop ppfun-backups
|
||||
pm2 stop ppfun-scb
|
||||
pm2 stop ppfun-scc
|
||||
pm2 stop ppfun-scd
|
||||
pm2 stop ppfun-sce
|
||||
pm2 stop ppfun-scf
|
||||
pm2 stop ppfun-scg
|
||||
pm2 stop ppfun-sch
|
||||
copy "${PFOLDER}" "${DO_REINSTALL}"
|
||||
copy "${SCBFOLDER}" 1
|
||||
copy "${SCCFOLDER}" 1
|
||||
copy "${SCDFOLDER}" 1
|
||||
copy "${SCEFOLDER}" 1
|
||||
copy "${SCFFOLDER}" 1
|
||||
copy "${SCGFOLDER}" 1
|
||||
copy "${SCHFOLDER}" 1
|
||||
cd "$PFOLDER"
|
||||
pm2 start ecosystem-backup.yml
|
|
@ -10,6 +10,7 @@
|
|||
"scripts": {
|
||||
"build": "node scripts/build.js && npm run minify-css",
|
||||
"build:dev": "webpack --env extract --config ./webpack.config.server.js && webpack --env extract --env development --config ./webpack.config.client.js && npm run minify-css",
|
||||
"deploy": "ssh pixelplanet /home/pixelpla/rebuild.sh",
|
||||
"minify-css": "node scripts/minifyCss.js",
|
||||
"babel-node": "babel-node",
|
||||
"lint": "cd $INIT_CWD && eslint --ext .jsx --ext .js",
|
||||
|
|
Loading…
Reference in New Issue
Block a user