95 lines
3.0 KiB
Bash
Executable File
95 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# env variables to set:
|
|
#
|
|
# FORCE_BUILD set this variable to "true" if you wanna force build, even if build was
|
|
# triggered without any commits pushed to the directory
|
|
#
|
|
# BUILD_SCRIPT build-testing or build-nightly, could be any other from package.json tho
|
|
#
|
|
# RELEASE_SERVER target server (where to push built zips after they've been built)
|
|
# RELEASE_DIRECTORY base directory on the target server
|
|
# BUILD_CHANNEL_DIRECTORY directory for uploads, inside the release directory
|
|
#
|
|
# AMO_API_KEY needed if you want to sign and push extension to addons.mozilla.org
|
|
# AMO_API_SECRET -||-
|
|
|
|
echo "============= STARTING BUILD SCRIPT ============="
|
|
pwd
|
|
whoami
|
|
echo " ::: env dump"
|
|
echo " -> FORCE_BUILD: $FORCE_BUILD"
|
|
echo " -> BUILD_SCRIPT: $BUILD_SCRIPT"
|
|
echo " -> RELEASE_SERVER: $RELEASE_SERVER"
|
|
echo " -> RELEASE_DIRECTORY: $RELEASE_DIRECTORY"
|
|
echo " -> BUILD_CHANNEL_DIRECTORY: $BUILD_CHANNEL_DIRECTORY"
|
|
|
|
# don't build if nothing has changed, unless overriden via env variable
|
|
if [ ! -z "$GIT_COMMIT" ] ; then
|
|
if [ ! -z "$GIT_PREVIOUS_COMMIT" ] ; then
|
|
if [ "$GIT_COMMIT" == "$GIT_PREVIOUS_COMMIT" ] ; then
|
|
if [ $FORCE_BUILD == false ] ; then
|
|
echo "--------------------------------------------"
|
|
echo " Nothing has changed. Aborting build."
|
|
echo "--------------------------------------------"
|
|
exit 0;
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# let's raise RAM limit for npm command globally
|
|
NODE_OPTIONS=--max_old_space_size=4096
|
|
|
|
npm ci
|
|
|
|
rm -rf ./dist-zip || true # no big deal if ./dist-zip doesn't exist
|
|
mkdir dist-zip # create it back
|
|
|
|
#
|
|
# build firefox
|
|
#
|
|
npm run "${BUILD_SCRIPT}"
|
|
node --max-old-space-size=2048 scripts/build-zip.js ff nightly
|
|
# if [ ! -z "${AMO_API_KEY}" ] ; then
|
|
# if [ ! -z "${AMO_API_SECRET}" ] ; then
|
|
# web-ext sign --source-dir ./dist --api-key "${AMO_API_KEY}" --api-secret "${AMO_API_SECRET}"
|
|
# fi
|
|
# fi
|
|
|
|
#
|
|
# build chrome
|
|
#
|
|
npm run "${BUILD_SCRIPT}-chrome"
|
|
node --max-old-space-size=2048 scripts/build-zip.js chrome nightly
|
|
#
|
|
#./scripts/build-crx.sh
|
|
#
|
|
|
|
#
|
|
# build edge
|
|
#
|
|
npm run "${BUILD_SCRIPT}-edge"
|
|
node --max-old-space-size=2048 scripts/build-zip.js chrome nightly
|
|
|
|
|
|
######################################
|
|
# UPLOAD TO WEB SERVER
|
|
######################################
|
|
|
|
echo "--------------------------------------------"
|
|
echo " files ready for upload"
|
|
echo "--------------------------------------------"
|
|
echo ""
|
|
echo "Uploading to server ..."
|
|
# push all built stuff to the server
|
|
scp -i ~/.ssh/id_rsa -r ./dist-zip/* "ultrawidify-uploader@${RELEASE_SERVER}:${RELEASE_DIRECTORY}${BUILD_CHANNEL_DIRECTORY}"
|
|
|
|
|
|
######################################
|
|
# Build finished message
|
|
######################################
|
|
echo ""
|
|
echo "--------------------------------------------"
|
|
echo " BUILD FINISHED SUCCESSFULLY"
|
|
echo "--------------------------------------------"
|