112 lines
3.3 KiB
Bash
Executable File
112 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
VERSION=2.8.29
|
|
APP=budibase
|
|
DEPOT=https://github.com/Budibase/budibase.git
|
|
GIT_VERSION=${VERSION}
|
|
DEB_VERSION=${VERSION}-$(date +%Y%m%d%H%M)
|
|
DEBIAN_VERSION_CODENAME=bullseye
|
|
IMAGE_SIZE=20
|
|
PACKAGE_DEPENDENCY="yarn nodejs build-essential"
|
|
|
|
main(){
|
|
base_package_upgrade
|
|
envinit
|
|
get_git_source
|
|
build
|
|
makedeb
|
|
}
|
|
|
|
envinit(){
|
|
configure_depot_yarn
|
|
configure_depot_nodejs 16
|
|
install_package_dependency
|
|
}
|
|
|
|
|
|
build() {
|
|
cd /tmp/${APP}
|
|
|
|
[ -e /opt/budibase ] && rm -fr /opt/budibase
|
|
KEEP="dist|package.json|yarn.lock|client|builder|build"
|
|
npm install -g yarn jest lerna husky --force
|
|
mkdir -p /opt/budibase/node_modules
|
|
|
|
cp -fr /tmp/${APP}/packages/server /opt/budibase
|
|
cp -fr /tmp/${APP}/packages/worker /opt/budibase
|
|
|
|
cp -fr /tmp/${APP}/packages/builder/ /opt/budibase/server
|
|
cp -fr /tmp/${APP}/packages/client/ /opt/budibase/server
|
|
|
|
cp -fr /tmp/${APP}/yarn.lock /opt/budibase/
|
|
|
|
|
|
ln -s /opt/budibase/node_modules /opt/budibase/server/node_modules
|
|
ln -s /opt/budibase/node_modules /opt/budibase/worker/node_modules
|
|
|
|
cd /opt/budibase/server
|
|
sed "s/\"0.0.0\"/\"${VERSION}\"/" -i package.json
|
|
yarn install --production=true
|
|
yarn build
|
|
|
|
cd /opt/budibase/worker
|
|
sed "s/\"0.0.0\"/\"${VERSION}\"/" -i package.json
|
|
yarn install --production=true
|
|
yarn build
|
|
|
|
#rm -fr /opt/budibase/node_modules
|
|
#mkdir -p /opt/budibase/node_modules
|
|
|
|
#cd /opt/budibase/server
|
|
#ls | egrep -v $KEEP | xargs rm -rfv
|
|
#ln -s /opt/budibase/node_modules /opt/budibase/worker/node_modules
|
|
#NODE_ENV=production yarn
|
|
#
|
|
#cd /opt/budibase/worker
|
|
#ls | egrep -v $KEEP | xargs rm -rfv
|
|
#ln -s /opt/budibase/node_modules /opt/budibase/server/node_modules
|
|
#NODE_ENV=production yarn
|
|
}
|
|
|
|
build() {
|
|
cd /tmp/${APP}
|
|
npm install -g yarn jest lerna husky --force
|
|
yarn
|
|
#yarn bootstrap
|
|
yarn build
|
|
|
|
rm -fr /tmp/${APP}/packages/*/build
|
|
}
|
|
|
|
|
|
makedeb(){
|
|
PATH_DEB=/tmp/src/rootfs
|
|
|
|
grep "process.env" /tmp/${APP}/packages/server/src/environment.ts | grep ":" | cut -d ":" -f 1 | tr -d ' ' | grep ^[A-Z] | awk '{print "#"$1"="}' | sort > ${PATH_DEB}/etc/default/budibase-server
|
|
grep "process.env" /tmp/${APP}/packages/worker/src/environment.ts | grep ":" | cut -d ":" -f 1 | tr -d ' ' | grep ^[A-Z] | awk '{print "#"$1"="}' | sort > ${PATH_DEB}/etc/default/budibase-worker
|
|
|
|
mv /opt/ ${PATH_DEB}/
|
|
|
|
sed -i "s/%VERSION%/$DEB_VERSION/" ${PATH_DEB}/DEBIAN/control
|
|
fakeroot dpkg-deb -Z gzip --build ${PATH_DEB} /tmp/dist
|
|
}
|
|
|
|
|
|
makedeb(){
|
|
PATH_DEB=/tmp/src/rootfs
|
|
|
|
grep "process.env" /tmp/${APP}/packages/server/src/environment.ts | grep ":" | cut -d ":" -f 1 | tr -d ' ' | grep ^[A-Z] | awk '{print "#"$1"="}' | sort > ${PATH_DEB}/etc/default/budibase-server
|
|
grep "process.env" /tmp/${APP}/packages/worker/src/environment.ts | grep ":" | cut -d ":" -f 1 | tr -d ' ' | grep ^[A-Z] | awk '{print "#"$1"="}' | sort > ${PATH_DEB}/etc/default/budibase-worker
|
|
|
|
mkdir -p ${PATH_DEB}/opt/budibase
|
|
cp -fr /tmp/${APP}/packages/* ${PATH_DEB}/opt/budibase/
|
|
cp -fr /tmp/${APP}/node_modules ${PATH_DEB}/opt/budibase/
|
|
mkdir -p ${PATH_DEB}/opt/budibase/server/client
|
|
cp ${PATH_DEB}/opt/budibase/client/manifest.json ${PATH_DEB}/opt/budibase/server/client
|
|
cp ${PATH_DEB}/opt/budibase/client/dist/budibase-client.js ${PATH_DEB}/opt/budibase/server/client
|
|
|
|
sed -i "s/%VERSION%/$DEB_VERSION/" ${PATH_DEB}/DEBIAN/control
|
|
fakeroot dpkg-deb -Z gzip --build ${PATH_DEB} /tmp/dist
|
|
}
|
|
|