update githook to decide if we need npm install
This commit is contained in:
parent
a7ca1d61d7
commit
5fa493cb17
|
@ -1,11 +1,9 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# This hook dists pixelplanet after a push, and deploys it
|
# This hook builds pixelplanet after a push, and deploys it
|
||||||
# If it is the production branch, it will deploy it on the life system, and other branch will get deployed to the dev-canvas (a second canvas that is running on the server)
|
# If it is the production branch, it will deploy it on the life system, and other branch will get deployed to the dev-canvas (a second canvas that is running on the server)
|
||||||
# canvases.json, proxies.json and ecosystem.yml are already in the terget directories
|
|
||||||
#
|
#
|
||||||
# To set up a server to use this, you have to go through the building steps manually first.
|
# To set up a server to use this, you have to go through the building steps manually first.
|
||||||
# And the configured ecosystem-x.yml files need to be in the target folder already, as they don't get copied from the build directory.
|
# This hook just builds the canvas, it does not install new packages if needed. So this has to be done manually first
|
||||||
# This hook just buildss the canvas, it does not install new packages if needed. So this has to be done manually first
|
|
||||||
#
|
#
|
||||||
#folder for building the canvas (the git repository will get checkout there and the canvas will get buil thtere)
|
#folder for building the canvas (the git repository will get checkout there and the canvas will get buil thtere)
|
||||||
BUILDDIR="/home/pixelpla/pixelplanet-build"
|
BUILDDIR="/home/pixelpla/pixelplanet-build"
|
||||||
|
@ -14,6 +12,24 @@ DEVFOLDER="/home/pixelpla/pixelplanet-dev"
|
||||||
#folder for production canvas
|
#folder for production canvas
|
||||||
PFOLDER="/home/pixelpla/pixelplanet"
|
PFOLDER="/home/pixelpla/pixelplanet"
|
||||||
|
|
||||||
|
should_reinstall () {
|
||||||
|
local TMPFILE="${BUILDDIR}/package.json.${branch}.tmp"
|
||||||
|
local ORFILE="${BUILDDIR}/package.json"
|
||||||
|
[ -f "${TMPFILE}" ] && 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
|
||||||
|
}
|
||||||
|
|
||||||
while read oldrev newrev refname
|
while read oldrev newrev refname
|
||||||
do
|
do
|
||||||
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
|
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
|
||||||
|
@ -25,9 +41,14 @@ do
|
||||||
COMMITS=`echo "$COMMITS" | sed ':a;N;$!ba;s/\n/\\\n/g'`
|
COMMITS=`echo "$COMMITS" | sed ':a;N;$!ba;s/\n/\\\n/g'`
|
||||||
echo "---BUILDING pixelplanet---"
|
echo "---BUILDING pixelplanet---"
|
||||||
cd "$BUILDDIR"
|
cd "$BUILDDIR"
|
||||||
|
should_reinstall
|
||||||
|
DO_REINSTALL=$?
|
||||||
|
[ $DO_REINSTALL -eq 0 ] && npm_reinstall
|
||||||
npm run build
|
npm run build
|
||||||
echo "---RESTARTING CANVAS---"
|
echo "---RESTARTING CANVAS---"
|
||||||
cp -r dist/*.js "${PFOLDER}/"
|
cp -r dist/*.js "${PFOLDER}/"
|
||||||
|
cp -r dist/workers "${PFOLDER}/"
|
||||||
|
rm -rf "${PFOLDER}/public/assets"
|
||||||
cp -r dist/public "${PFOLDER}/"
|
cp -r dist/public "${PFOLDER}/"
|
||||||
cp -r dist/captchaFonts "${PFOLDER}/"
|
cp -r dist/captchaFonts "${PFOLDER}/"
|
||||||
cp -r dist/package.json "${PFOLDER}/"
|
cp -r dist/package.json "${PFOLDER}/"
|
||||||
|
@ -37,22 +58,29 @@ do
|
||||||
cd "$PFOLDER"
|
cd "$PFOLDER"
|
||||||
pm2 stop ppfun-server
|
pm2 stop ppfun-server
|
||||||
pm2 stop ppfun-backups
|
pm2 stop ppfun-backups
|
||||||
pm2 stop ppfun-captchas
|
pm2 stop ppfun-captchs
|
||||||
|
[ $DO_REINSTALL -eq 0 ] && npm_reinstall
|
||||||
pm2 start ecosystem.yml
|
pm2 start ecosystem.yml
|
||||||
pm2 start ecosystem-backup.yml
|
pm2 start ecosystem-backup.yml
|
||||||
pm2 start ecosystem-captchas.yml
|
pm2 start ecosystem-captchas.yml
|
||||||
else
|
else
|
||||||
echo "---UPDATING REPO ON DEV SERVER---"
|
echo "---UPDATING REPO ON DEV SERVER---"
|
||||||
pm2 stop ppfun-server-dev
|
pm2 stop ppfun-server-dev
|
||||||
|
pm2 stop ppfun-captchas-dev
|
||||||
GIT_WORK_TREE="$BUILDDIR" GIT_DIR="${BUILDDIR}/.git" git fetch --all
|
GIT_WORK_TREE="$BUILDDIR" GIT_DIR="${BUILDDIR}/.git" git fetch --all
|
||||||
GIT_WORK_TREE="$BUILDDIR" GIT_DIR="${BUILDDIR}/.git" git reset --hard "origin/$branch"
|
GIT_WORK_TREE="$BUILDDIR" GIT_DIR="${BUILDDIR}/.git" git reset --hard "origin/$branch"
|
||||||
COMMITS=`git log --pretty=format:'- %s%b' $newrev ^$oldrev`
|
COMMITS=`git log --pretty=format:'- %s%b' $newrev ^$oldrev`
|
||||||
COMMITS=`echo "$COMMITS" | sed ':a;N;$!ba;s/\n/\\\n/g'`
|
COMMITS=`echo "$COMMITS" | sed ':a;N;$!ba;s/\n/\\\n/g'`
|
||||||
echo "---BUILDING pixelplanet---"
|
echo "---BUILDING pixelplanet---"
|
||||||
cd "$BUILDDIR"
|
cd "$BUILDDIR"
|
||||||
|
should_reinstall
|
||||||
|
DO_REINSTALL=$?
|
||||||
|
[ $DO_REINSTALL -eq 0 ] && npm_reinstall
|
||||||
nice -n 19 npm run build:dev
|
nice -n 19 npm run build:dev
|
||||||
echo "---RESTARTING CANVAS---"
|
echo "---RESTARTING CANVAS---"
|
||||||
cp -r dist/*.js "${DEVFOLDER}/"
|
cp -r dist/*.js "${DEVFOLDER}/"
|
||||||
|
cp -r dist/workers "${DEVFOLDER}/"
|
||||||
|
rm -rf "${DEVFOLDER}/public/assets"
|
||||||
cp -r dist/public "${DEVFOLDER}/"
|
cp -r dist/public "${DEVFOLDER}/"
|
||||||
cp -r dist/captchaFonts "${DEVFOLDER}/"
|
cp -r dist/captchaFonts "${DEVFOLDER}/"
|
||||||
cp -r dist/package.json "${DEVFOLDER}/"
|
cp -r dist/package.json "${DEVFOLDER}/"
|
||||||
|
@ -60,6 +88,8 @@ do
|
||||||
cp -r dist/styleassets.json "${DEVFOLDER}/"
|
cp -r dist/styleassets.json "${DEVFOLDER}/"
|
||||||
mkdir -p "${PFOLDER}/log"
|
mkdir -p "${PFOLDER}/log"
|
||||||
cd "$DEVFOLDER"
|
cd "$DEVFOLDER"
|
||||||
|
[ $DO_REINSTALL -eq 0 ] && npm_reinstall
|
||||||
pm2 start ecosystem.yml
|
pm2 start ecosystem.yml
|
||||||
|
pm2 start ecosystem-captchas.yml
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in New Issue
Block a user