0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-01-06 14:50:20 -05:00
penpot/manage.sh

138 lines
3.1 KiB
Bash
Raw Normal View History

2016-11-20 14:08:24 -05:00
#!/usr/bin/env bash
set -e
2016-11-20 14:08:24 -05:00
REV=`git rev-parse --short HEAD`
IMGNAME="uxbox"
function kill_container {
2019-02-20 15:24:03 -05:00
echo "Cleaning development container $IMGNAME:$REV..."
if $(sudo docker ps | grep -q $IMGNAME); then
sudo docker ps | grep $IMGNAME | awk '{print $1}' | xargs --no-run-if-empty sudo docker kill
2016-11-20 14:08:24 -05:00
fi
2019-02-20 15:24:03 -05:00
if $(sudo docker ps -a | grep -q $IMGNAME); then
sudo docker ps -a | grep $IMGNAME | awk '{print $1}' | xargs --no-run-if-empty sudo docker rm
fi
}
function remove_image {
echo "Clean old development image $IMGNAME..."
sudo docker images | grep $IMGNAME | awk '{print $3}' | xargs --no-run-if-empty sudo docker rmi
2016-11-20 14:08:24 -05:00
}
function build_image {
kill_container
2019-02-20 15:24:03 -05:00
remove_image
2019-02-19 23:58:25 -05:00
echo "Building development image $IMGNAME:$REV..."
sudo docker build --rm=true -t $IMGNAME:$REV docker/
2016-11-20 14:08:24 -05:00
}
function run_image {
kill_container
if ! $(sudo docker images | grep $IMGNAME | grep -q $REV); then
2016-11-20 14:08:24 -05:00
build_image
fi
mkdir -p $HOME/.m2
2019-02-14 07:04:05 -05:00
rm -rf ./frontend/node_modules
2019-02-20 15:24:03 -05:00
CONTAINER=$IMGNAME:$REV
#CONTAINER=monogramm/uxbox:develop
echo "Running development image $CONTAINER..."
2016-11-20 14:08:24 -05:00
sudo docker run -ti \
-v `pwd`:/home/uxbox/uxbox \
2016-11-20 14:08:24 -05:00
-v $HOME/.m2:/home/uxbox/.m2 \
-v $HOME/.gitconfig:/home/uxbox/.gitconfig \
2019-02-19 23:58:25 -05:00
-p 3449:3449 -p 6060:6060 -p 9090:9090 \
2019-02-20 15:24:03 -05:00
$CONTAINER
2016-11-20 14:08:24 -05:00
}
function test {
kill_container
2019-02-20 15:24:03 -05:00
echo "TODO Testing backend (require running postgresql)..."
cd ./backend
#lein test
cd ..
echo "Testing frontend..."
cd ./frontend
./scripts/build-tests
node ./out/tests.js
cd ..
}
function release_local {
cd frontend
echo "Building frontend release..."
rm -rf ./dist
2019-02-14 07:04:05 -05:00
rm -rf ./node_modules
npm install
npm run dist
./scripts/dist-main
./scripts/dist-view
./scripts/dist-worker
echo "Frontend release generated in $(pwd)/dist"
cd ../backend
echo "Building backend release..."
rm -rf ./dist
./scripts/dist.sh
echo "Backend release generated in $(pwd)/dist"
cd ..
}
function release_image {
echo "Building frontend release..."
rm -rf ./frontend/dist ./frontend/node_modules ./frontend/dist
sudo docker build --rm=true -t ${IMGNAME}_frontend:$REV frontend/
echo "Frontend release image generated"
echo "Building backend release..."
rm -rf ./backend/dist
sudo docker build --rm=true -t ${IMGNAME}_backend:$REV backend/
echo "Backend release image generated"
}
function run_release {
kill_container
echo "Running production images..."
sudo docker-compose up -d
}
2016-11-20 14:08:24 -05:00
function usage {
echo "UXBOX build & release manager v$REV"
2019-02-20 15:24:03 -05:00
echo "USAGE: $0 [ clean | build | run | test | release-local | release-docker | run-release ]"
2016-11-20 14:08:24 -05:00
}
case $1 in
2019-02-20 15:24:03 -05:00
clean)
kill_container
remove_image
;;
2016-11-20 14:08:24 -05:00
build)
build_image
;;
run)
run_image
;;
test)
test
;;
release-local)
release_local
;;
release-docker)
release_image
;;
run-release)
run_release
;;
2016-11-20 14:08:24 -05:00
*)
usage
;;
esac