From 14e6975590ece59139ca31337b31461f77455829 Mon Sep 17 00:00:00 2001 From: Vishwas Shashidhar Date: Tue, 27 Aug 2019 16:38:26 +0530 Subject: [PATCH] build scripts - create build script for macOS - create build script for linux - create build script for windows - create build script for windows x86 --- config/Symphony.config | 2 +- installer/mac/preinstall.sh | 2 +- jest-config.json | 2 +- package.json | 2 +- scripts/build-linux.sh | 39 ++++++++++++++++++++++ scripts/build-mac.sh | 65 +++++++++++++++++++++++++++++++++++++ scripts/build-win32.bat | 30 +++++++++++++++++ scripts/build-win64.bat | 28 ++++++++++++++++ 8 files changed, 166 insertions(+), 4 deletions(-) create mode 100644 scripts/build-linux.sh create mode 100755 scripts/build-mac.sh create mode 100644 scripts/build-win32.bat create mode 100644 scripts/build-win64.bat diff --git a/config/Symphony.config b/config/Symphony.config index 96f750d3..941191bf 100644 --- a/config/Symphony.config +++ b/config/Symphony.config @@ -1,5 +1,5 @@ { - "url": "https://foundation-dev.symphony.com", + "url":"https://corporate.symphony.com", "minimizeOnClose" : true, "launchOnStartup" : true, "alwaysOnTop" : false, diff --git a/installer/mac/preinstall.sh b/installer/mac/preinstall.sh index 4fdaa4d7..5da3c0dd 100755 --- a/installer/mac/preinstall.sh +++ b/installer/mac/preinstall.sh @@ -12,7 +12,7 @@ delete_app() compare_versions() { # Get the installer version: - CURRENT_VERSION=APP_VERSION + CURRENT_VERSION=5.0.0 # Get the currently installed version: INSTALLED_VERSION=$(plutil -p /Applications/Symphony.app/Contents/Info.plist | awk '/CFBundleShortVersionString/ {print substr($3, 2, length($3)-2)}') diff --git a/jest-config.json b/jest-config.json index a6434fbc..cbdbd967 100644 --- a/jest-config.json +++ b/jest-config.json @@ -34,7 +34,7 @@ "includeConsoleLog": true, "theme": "lightTheme", "sort": "status", - "outputPath": "./out/Unit Tests Report.html" + "outputPath": "./dist/coverage/UnitTestsReport.html" }] ], "setupFiles": [ diff --git a/package.json b/package.json index dcce4525..42b0cb3d 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "Symphony", "version": "5.0.0", "clientVersion": "2.0.1", - "buildNumber": "0", + "buildNumber":"", "searchAPIVersion": "1.55.3", "description": "Symphony desktop app (Foundation ODP)", "author": "Symphony OSS ", diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh new file mode 100644 index 00000000..46459d1a --- /dev/null +++ b/scripts/build-linux.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +if ! [ -x "$(command -v git)" ]; then + echo 'GIT does not exist! Please set it up before running this script!' >&2 + exit 1 +fi + +if ! [ -x "$(command -v node)" ]; then + echo 'NODE does not exist! Please set it up before running this script!' >&2 + exit 1 +fi + +nvm use default +NODE_VERSION=$(node --version) +echo "Node Version: ${NODE_VERSION}" + +if [ ! -d "$HOME/tronlibraries/library" ]; then + echo 'Search libraries do not exist! Not building with swift search' >&2 +else + cp -r "$HOME/tronlibraries/library" . +fi + +PKG_VERSION=$(node -e "console.log(require('./package.json').version);") + +# Install app dependencies +npm install + +# replace url in config +echo "Setting default pod url to https://corporate.symphony.com" +sed -i -e 's/\"url\"[[:space:]]*\:[[:space:]]*\".*\"/\"url\":\"https:\/\/corporate.symphony.com\"/g' config/Symphony.config +# setup the build version +echo "Setting build version to ${PARENT_BUILD_VERSION}" +sed -i -e "s/\"buildNumber\"[[:space:]]*\:[[:space:]]*\".*\"/\"buildNumber\":\"${PARENT_BUILD_VERSION}\"/g" package.json +# replace version number in pre-install script +echo "Setting package version in pre install script to ${PKG_VERSION}" +sed -i -e "s/CURRENT_VERSION=APP_VERSION/CURRENT_VERSION=${PKG_VERSION}/g" ./installer/mac/preinstall.sh + +echo "Running tests, code coverage, linting and building..." +npm run packed-linux diff --git a/scripts/build-mac.sh b/scripts/build-mac.sh new file mode 100755 index 00000000..82cb50c5 --- /dev/null +++ b/scripts/build-mac.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +if ! [ -x "$(command -v git)" ]; then + echo 'GIT does not exist! Please set it up before running this script!' >&2 + exit 1 +fi + +if ! [ -x "$(command -v node)" ]; then + echo 'NODE does not exist! Please set it up before running this script!' >&2 + exit 1 +fi + +if ! [ -x "$(command -v /usr/local/bin/packagesbuild)" ]; then + echo 'Packages build does not exist! Please set it up before running this script!' >&2 + exit 1 +fi + +nvm use default +NODE_VERSION=$(node --version) +echo "Node Version: ${NODE_VERSION}" + +if [ ! -d "$HOME/tronlibraries/library" ]; then + echo 'Search libraries do not exist! Not building with swift search' >&2 +else + cp -r "$HOME/tronlibraries/library" . +fi + +PKG_VERSION=$(node -e "console.log(require('./package.json').version);") + +# Install app dependencies +npm install + +# replace url in config +echo "Setting default pod url to https://corporate.symphony.com" +sed -i -e 's/\"url\"[[:space:]]*\:[[:space:]]*\".*\"/\"url\":\"https:\/\/corporate.symphony.com\"/g' config/Symphony.config +# setup the build version +echo "Setting build version to ${PARENT_BUILD_VERSION}" +sed -i -e "s/\"buildNumber\"[[:space:]]*\:[[:space:]]*\".*\"/\"buildNumber\":\"${PARENT_BUILD_VERSION}\"/g" package.json +# replace version number in pre-install script +echo "Setting package version in pre install script to ${PKG_VERSION}" +sed -i -e "s/CURRENT_VERSION=APP_VERSION/CURRENT_VERSION=${PKG_VERSION}/g" ./installer/mac/preinstall.sh + +echo "Running tests, code coverage, linting and building..." +npm run unpacked-mac + +APP_BUILD=dist/mac/Symphony.app + +# Test if app was built and exists, if not, exit +if [ ! -e ${APP_BUILD} ]; then + echo "BUILD FAILED: app does not exist: ${APP_BUILD}" + exit 1 +fi + +echo "App created: ${APP_BUILD}" + +# Create .pkg installer +echo "Creating .pkg" +/usr/local/bin/packagesbuild -v installer/mac/symphony-mac-packager.pkgproj +PACKAGE=installer/mac/build/Symphony.pkg + +if [ ! -e ${PACKAGE} ]; then + echo "BUILD PACKAGE FAILED: package not created: ${PACKAGE}" + exit 1 +fi +echo "Package created: ${PACKAGE}" diff --git a/scripts/build-win32.bat b/scripts/build-win32.bat new file mode 100644 index 00000000..619359e4 --- /dev/null +++ b/scripts/build-win32.bat @@ -0,0 +1,30 @@ +echo "invoking visual dev tools..." +call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat" +echo %PATH% + +set DISABLE_REBUILD=true + +set PATH=%PATH%;C:\Program Files\nodejs\;C:\Program Files\Git\cmd +echo %PATH% + +set PATH=%PATH%;C:\Program Files (x86)\GnuWin32\bin +echo %PATH% + +:: Below command replaces buildVersion with the appropriate build number from jenkins +:: https://superuser.com/questions/339118/regex-replace-from-command-line +sed -i -e "s/\"buildNumber\"[[:space:]]*\:[[:space:]]*\".*\"/\"buildNumber\":\"%PARENT_BUILD_VERSION%\"/g" package.json + +sed -i -e "s/\"electronDist\"[[:space:]]*\:[[:space:]]*\".*\"/\"electronDist\":\"C:\\jenkins\\workspace\\R64\"/g" package.json + +echo "Copying search libraries" +echo D | xcopy /y "C:\jenkins\workspace\tronlibraries\library" "library" + +echo "Running npm install..." +call npm install + +call npm i -g gulp-cli +echo "Setting expiry to days: %EXPIRY_PERIOD%" +call gulp setExpiry --period %EXPIRY_PERIOD% + +echo "Running tests, code coverage, linting and building..." +call npm run unpacked-win-x86 diff --git a/scripts/build-win64.bat b/scripts/build-win64.bat new file mode 100644 index 00000000..44a82ec9 --- /dev/null +++ b/scripts/build-win64.bat @@ -0,0 +1,28 @@ +echo "invoking visual dev tools..." +call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat" +echo %PATH% + +set PATH=%PATH%;C:\Program Files\nodejs\;C:\Program Files\Git\cmd +echo %PATH% + +set PATH=%PATH%;C:\Program Files (x86)\GnuWin32\bin +echo %PATH% + +:: Below command replaces buildVersion with the appropriate build number from jenkins +:: https://superuser.com/questions/339118/regex-replace-from-command-line +sed -i -e "s/\"buildNumber\"[[:space:]]*\:[[:space:]]*\".*\"/\"buildNumber\":\"%PARENT_BUILD_VERSION%\"/g" package.json + +sed -i -e "s/\"electronDist\"[[:space:]]*\:[[:space:]]*\".*\"/\"electronDist\":\"C:\\jenkins\\workspace\\R64\"/g" package.json + +echo "Copying search libraries" +echo D | xcopy /y "C:\jenkins\workspace\tronlibraries\library" "library" + +echo "Running npm install..." +call npm install + +call npm i -g gulp-cli +echo "Setting expiry to days: %EXPIRY_PERIOD%" +call gulp setExpiry --period %EXPIRY_PERIOD% + +echo "Building the 64 bit version..." +call npm run unpacked-win