diff --git a/bin/build-docker.sh b/bin/build-docker.sh index 06b2375e3..44bb545d9 100755 --- a/bin/build-docker.sh +++ b/bin/build-docker.sh @@ -1,8 +1,5 @@ #!/usr/bin/env bash -if [[ $# -eq 0 ]] ; then - echo "Missing argument of new version" - exit 1 -fi +VERSION=`jq -r ".version" package.json` -sudo docker build -t zadam/trilium:latest -t zadam/trilium:$1 . \ No newline at end of file +sudo docker build -t zadam/trilium:latest -t zadam/trilium:$VERSION . \ No newline at end of file diff --git a/bin/build-linux-ia32.sh b/bin/build-linux-ia32.sh new file mode 100755 index 000000000..7782c742b --- /dev/null +++ b/bin/build-linux-ia32.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +BUILD_DIR=./dist/trilium-linux-ia32 +rm -rf $BUILD_DIR + +echo "Rebuilding binaries for linux-ia32" +./node_modules/.bin/electron-rebuild --arch=ia32 + +./node_modules/.bin/electron-packager . --out=dist --executable-name=trilium --platform=linux --arch=ia32 --overwrite + +mv "./dist/Trilium Notes-linux-ia32" $BUILD_DIR + +rm -r $BUILD_DIR/resources/app/bin/deps +# removing software WebGL binaries because they are pretty huge and not necessary +rm -r $BUILD_DIR/swiftshader + +echo "Packaging linux ia32 electron distribution..." +VERSION=`jq -r ".version" package.json` +7z a $BUILD_DIR-${VERSION}.7z $BUILD_DIR \ No newline at end of file diff --git a/bin/build-linux-x64.sh b/bin/build-linux-x64.sh new file mode 100755 index 000000000..47fe84a75 --- /dev/null +++ b/bin/build-linux-x64.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +BUILD_DIR=./dist/trilium-linux-x64 +rm -rf $BUILD_DIR + +# we build x64 as second so that we keep X64 binaries in node_modules for local development and server build +echo "Rebuilding binaries for linux-x64" +./node_modules/.bin/electron-rebuild --arch=x64 + +./node_modules/.bin/electron-packager . --out=dist --executable-name=trilium --platform=linux --arch=x64 --overwrite + +mv "./dist/Trilium Notes-linux-x64" $BUILD_DIR + +rm -r $BUILD_DIR/resources/app/bin/deps +# removing software WebGL binaries because they are pretty huge and not necessary +rm -r $BUILD_DIR/swiftshader + +echo "Packaging linux x64 electron distribution..." +VERSION=`jq -r ".version" package.json` +7z a $BUILD_DIR-${VERSION}.7z $BUILD_DIR \ No newline at end of file diff --git a/bin/build-mac-x64.sh b/bin/build-mac-x64.sh new file mode 100755 index 000000000..ad466a0fc --- /dev/null +++ b/bin/build-mac-x64.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +BUILD_DIR=./dist/trilium-mac-x64 +rm -rf $BUILD_DIR + +./node_modules/.bin/electron-packager . --out=dist --executable-name=trilium --platform=darwin --arch=x64 --overwrite --icon=src/public/images/app-icons/mac/icon.icns + +# Mac build has by default useless directory level +mv "./dist/Trilium Notes-darwin-x64" $BUILD_DIR + +echo "Copying required mac binaries" + +MAC_RES_DIR=$BUILD_DIR/Trilium\ Notes.app/Contents/Resources/app + +rm -r "$MAC_RES_DIR/node_modules/sqlite3/lib/binding/*" + +cp -r bin/deps/mac/sqlite/* "$MAC_RES_DIR/node_modules/sqlite3/lib/binding/" +cp bin/deps/mac/image/cjpeg "$MAC_RES_DIR/node_modules/mozjpeg/vendor/" +cp bin/deps/mac/image/pngquant "$MAC_RES_DIR/node_modules/pngquant-bin/vendor/" +cp bin/deps/mac/image/gifsicle "$MAC_RES_DIR/node_modules/giflossy/vendor/" + +rm -r "$MAC_RES_DIR/bin/deps" + +echo "Packaging mac x64 electron distribution..." + +VERSION=`jq -r ".version" package.json` +7z a $BUILD_DIR-${VERSION}.7z $BUILD_DIR \ No newline at end of file diff --git a/bin/build-server.sh b/bin/build-server.sh index 929c03fd9..3c9eb9ba7 100755 --- a/bin/build-server.sh +++ b/bin/build-server.sh @@ -1,11 +1,5 @@ #!/usr/bin/env bash -if [[ $# -eq 0 ]] ; then - echo "Missing argument of new version" - exit 1 -fi - -VERSION=$1 PKG_DIR=dist/trilium-linux-x64-server NODE_VERSION=10.14.1 @@ -35,4 +29,5 @@ chmod 755 trilium.sh cd .. +VERSION=`jq -r ".version" package.json` 7z a trilium-linux-x64-server-${VERSION}.7z trilium-linux-x64-server \ No newline at end of file diff --git a/bin/build-win-x64.sh b/bin/build-win-x64.sh new file mode 100755 index 000000000..c1bdde5eb --- /dev/null +++ b/bin/build-win-x64.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +BUILD_DIR=./dist/trilium-windows-x64 +rm -rf $BUILD_DIR + +./node_modules/.bin/electron-packager . --out=dist --executable-name=trilium --platform=win32 --arch=x64 --overwrite --icon=src/public/images/app-icons/win/icon.ico + +mv "./dist/Trilium Notes-win32-x64" $BUILD_DIR + +echo "Copying required windows binaries" + +WIN_RES_DIR=$BUILD_DIR/resources/app + +cp -r bin/deps/win/sqlite/* $WIN_RES_DIR/node_modules/sqlite3/lib/binding/ +cp bin/deps/win/image/cjpeg.exe $WIN_RES_DIR/node_modules/mozjpeg/vendor/ +cp bin/deps/win/image/pngquant.exe $WIN_RES_DIR/node_modules/pngquant-bin/vendor/ +cp bin/deps/win/image/gifsicle.exe $WIN_RES_DIR/node_modules/giflossy/vendor/ + +rm -r $WIN_RES_DIR/bin/deps +# removing software WebGL binaries because they are pretty huge and not necessary +rm -r $BUILD_DIR/swiftshader + +echo "Packaging windows x64 electron distribution..." +VERSION=`jq -r ".version" package.json` +7z a $BUILD_DIR-${VERSION}.7z $BUILD_DIR diff --git a/bin/build.sh b/bin/build.sh index 362be1b37..327580173 100755 --- a/bin/build.sh +++ b/bin/build.sh @@ -8,36 +8,11 @@ echo "Deleting existing builds" rm -r dist/* -echo "Rebuilding binaries for linux-ia32" -./node_modules/.bin/electron-rebuild --arch=ia32 +bin/build-linux-ia32.sh -./node_modules/.bin/electron-packager . --out=dist --executable-name=trilium --platform=linux --arch=ia32 --overwrite +bin/build-win-x64.sh -mv "./dist/Trilium Notes-linux-ia32" ./dist/trilium-linux-ia32 +bin/build-mac-x64.sh -./node_modules/.bin/electron-packager . --out=dist --executable-name=trilium --platform=win32 --arch=x64 --overwrite --icon=src/public/images/app-icons/win/icon.ico - -mv "./dist/Trilium Notes-win32-x64" ./dist/trilium-win32-x64 - -# we build x64 as second so that we keep X64 binaries in node_modules for local development and server build -echo "Rebuilding binaries for linux-x64" -./node_modules/.bin/electron-rebuild --arch=x64 - -./node_modules/.bin/electron-packager . --out=dist --executable-name=trilium --platform=linux --arch=x64 --overwrite - -mv "./dist/Trilium Notes-linux-x64" ./dist/trilium-linux-x64 - -echo "Copying required windows binaries" - -WIN_RES_DIR=./dist/trilium-win32-x64/resources/app - -cp -r bin/deps/sqlite/* $WIN_RES_DIR/node_modules/sqlite3/lib/binding/ -cp bin/deps/image/cjpeg.exe $WIN_RES_DIR/node_modules/mozjpeg/vendor/ -cp bin/deps/image/pngquant.exe $WIN_RES_DIR/node_modules/pngquant-bin/vendor/ -cp bin/deps/image/gifsicle.exe $WIN_RES_DIR/node_modules/giflossy/vendor/ - -echo "Cleaning up unnecessary binaries from all builds" - -rm -r ./dist/trilium-linux-ia32/resources/app/bin/deps -rm -r ./dist/trilium-linux-x64/resources/app/bin/deps -rm -r ./dist/trilium-win32-x64/resources/app/bin/deps \ No newline at end of file +# building X64 linux as the last so electron-rebuild will prepare X64 binaries for local development +bin/build-linux-x64.sh diff --git a/bin/deps/mac/image/cjpeg b/bin/deps/mac/image/cjpeg new file mode 100644 index 000000000..e3f506e2a Binary files /dev/null and b/bin/deps/mac/image/cjpeg differ diff --git a/bin/deps/mac/image/gifsicle b/bin/deps/mac/image/gifsicle new file mode 100644 index 000000000..058f86d4a Binary files /dev/null and b/bin/deps/mac/image/gifsicle differ diff --git a/bin/deps/mac/image/pngquant b/bin/deps/mac/image/pngquant new file mode 100644 index 000000000..382830358 Binary files /dev/null and b/bin/deps/mac/image/pngquant differ diff --git a/bin/deps/mac/sqlite/electron-v4.0-darwin-x64/node_sqlite3.node b/bin/deps/mac/sqlite/electron-v4.0-darwin-x64/node_sqlite3.node new file mode 100644 index 000000000..2d71c65ff Binary files /dev/null and b/bin/deps/mac/sqlite/electron-v4.0-darwin-x64/node_sqlite3.node differ diff --git a/bin/deps/image/cjpeg.exe b/bin/deps/win/image/cjpeg.exe similarity index 100% rename from bin/deps/image/cjpeg.exe rename to bin/deps/win/image/cjpeg.exe diff --git a/bin/deps/image/gifsicle.exe b/bin/deps/win/image/gifsicle.exe similarity index 100% rename from bin/deps/image/gifsicle.exe rename to bin/deps/win/image/gifsicle.exe diff --git a/bin/deps/image/pngquant.exe b/bin/deps/win/image/pngquant.exe similarity index 100% rename from bin/deps/image/pngquant.exe rename to bin/deps/win/image/pngquant.exe diff --git a/bin/deps/sqlite/electron-v4.0-win32-x64/node_sqlite3.node b/bin/deps/win/sqlite/electron-v4.0-win32-x64/node_sqlite3.node similarity index 100% rename from bin/deps/sqlite/electron-v4.0-win32-x64/node_sqlite3.node rename to bin/deps/win/sqlite/electron-v4.0-win32-x64/node_sqlite3.node diff --git a/bin/generate-cert.sh b/bin/generate-cert.sh old mode 100644 new mode 100755 diff --git a/bin/package.sh b/bin/package.sh deleted file mode 100755 index 892be7081..000000000 --- a/bin/package.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -VERSION=`jq -r ".version" package.json` - -cd dist - -echo "Packaging linux x64 electron distribution..." -7z a trilium-linux-x64-${VERSION}.7z trilium-linux-x64 - -echo "Packaging linux ia32 electron distribution..." -7z a trilium-linux-ia32-${VERSION}.7z trilium-linux-ia32 - -echo "Packaging windows x64 electron distribution..." -7z a trilium-windows-x64-${VERSION}.7z trilium-win32-x64 \ No newline at end of file diff --git a/bin/release.sh b/bin/release.sh index 6e6043efa..91f511044 100755 --- a/bin/release.sh +++ b/bin/release.sh @@ -42,18 +42,23 @@ git push origin $TAG bin/build.sh -bin/package.sh - LINUX_X64_BUILD=trilium-linux-x64-$VERSION.7z LINUX_IA32_BUILD=trilium-linux-ia32-$VERSION.7z WINDOWS_X64_BUILD=trilium-windows-x64-$VERSION.7z +MAC_X64_BUILD=trilium-mac-x64-$VERSION.7z SERVER_BUILD=trilium-linux-x64-server-$VERSION.7z echo "Creating release in GitHub" +EXTRA= + +if [[ $TAG == *"beta"* ]]; then + EXTRA=--pre-release +fi + github-release release \ --tag $TAG \ - --name "$TAG release" + --name "$TAG release" $EXTRA echo "Uploading linux x64 build" @@ -76,6 +81,13 @@ github-release upload \ --name "$WINDOWS_X64_BUILD" \ --file "dist/$WINDOWS_X64_BUILD" +echo "Uploading mac x64 build" + +github-release upload \ + --tag $TAG \ + --name "$MAC_X64_BUILD" \ + --file "dist/$MAC_X64_BUILD" + echo "Packaging server version" bin/build-server.sh $VERSION diff --git a/src/public/images/app-icons/mac/icon.icns b/src/public/images/app-icons/mac/icon.icns new file mode 100644 index 000000000..2a7baaebc Binary files /dev/null and b/src/public/images/app-icons/mac/icon.icns differ