2018-08-30 21:57:14 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2024-07-22 21:33:07 +03:00
|
|
|
set -e # Fail on any command error
|
|
|
|
|
2025-01-17 11:52:45 -08:00
|
|
|
# Debug output
|
|
|
|
echo "Matrix Arch: $MATRIX_ARCH"
|
|
|
|
|
|
|
|
# Detect architecture from matrix input, fallback to system architecture
|
|
|
|
if [ -n "$MATRIX_ARCH" ]; then
|
|
|
|
ARCH=$MATRIX_ARCH
|
|
|
|
else
|
|
|
|
ARCH=$(uname -m)
|
|
|
|
# Convert system architecture to our naming convention
|
|
|
|
case $ARCH in
|
|
|
|
x86_64) ARCH="x64" ;;
|
|
|
|
aarch64) ARCH="arm64" ;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Debug output
|
|
|
|
echo "Selected Arch: $ARCH"
|
|
|
|
|
|
|
|
# Set Node.js version and architecture-specific filename
|
2025-03-26 08:12:22 +01:00
|
|
|
NODE_VERSION=22.14.0
|
2025-01-17 11:52:45 -08:00
|
|
|
|
2025-03-09 17:43:01 +01:00
|
|
|
BUILD_DIR="./build"
|
|
|
|
DIST_DIR="./dist"
|
2018-08-30 21:57:14 +02:00
|
|
|
|
2025-03-09 18:13:49 +01:00
|
|
|
./bin/copy-trilium.sh
|
2018-08-30 21:57:14 +02:00
|
|
|
|
2025-03-09 18:58:56 +01:00
|
|
|
NODE_FILENAME=node-v${NODE_VERSION}-linux-${ARCH}
|
|
|
|
|
|
|
|
echo "Downloading Node.js runtime $NODE_FILENAME..."
|
2025-03-09 17:43:01 +01:00
|
|
|
cd $BUILD_DIR
|
2025-03-09 18:58:56 +01:00
|
|
|
wget -qO- https://nodejs.org/dist/v${NODE_VERSION}/${NODE_FILENAME}.tar.xz | tar xfJ -
|
|
|
|
mv $NODE_FILENAME node
|
2019-10-11 21:22:59 +02:00
|
|
|
cd ..
|
2018-08-30 21:57:14 +02:00
|
|
|
|
|
|
|
|
2025-03-09 17:44:21 +01:00
|
|
|
rm -r $BUILD_DIR/node/lib/node_modules/npm \
|
|
|
|
$BUILD_DIR/node/include/node \
|
|
|
|
$BUILD_DIR/node_modules/electron* \
|
2025-03-09 18:04:29 +01:00
|
|
|
$BUILD_DIR/electron*.{js,map}
|
2018-08-30 21:57:14 +02:00
|
|
|
|
2025-03-09 17:43:01 +01:00
|
|
|
printf "#!/bin/sh\n./node/bin/node src/main" > $BUILD_DIR/trilium.sh
|
|
|
|
chmod 755 $BUILD_DIR/trilium.sh
|
2018-08-30 21:57:14 +02:00
|
|
|
|
2025-03-09 17:48:32 +01:00
|
|
|
# TriliumNextTODO: is this still required? If yes → move to copy-dist/copy-trilium
|
2025-03-09 17:43:01 +01:00
|
|
|
cp bin/tpl/anonymize-database.sql $BUILD_DIR/
|
2022-01-17 23:47:26 +01:00
|
|
|
|
2019-10-11 21:22:59 +02:00
|
|
|
VERSION=`jq -r ".version" package.json`
|
2018-08-30 21:57:14 +02:00
|
|
|
|
2025-03-09 18:25:46 +01:00
|
|
|
|
|
|
|
ARCHIVE_NAME="TriliumNextNotes-Server-${VERSION}-linux-${ARCH}"
|
2025-03-09 18:58:56 +01:00
|
|
|
echo "Creating Archive $ARCHIVE_NAME..."
|
2025-03-09 18:25:46 +01:00
|
|
|
|
2025-03-09 17:43:01 +01:00
|
|
|
mkdir $DIST_DIR
|
2025-03-09 18:25:46 +01:00
|
|
|
cp -r "$BUILD_DIR" "$DIST_DIR/$ARCHIVE_NAME"
|
2025-03-09 17:43:01 +01:00
|
|
|
cd $DIST_DIR
|
2025-03-09 18:25:46 +01:00
|
|
|
tar cJf "$ARCHIVE_NAME.tar.xz" "$ARCHIVE_NAME"
|
|
|
|
rm -rf "$ARCHIVE_NAME"
|
|
|
|
|
2025-03-09 18:11:53 +01:00
|
|
|
echo "Server Build Completed!"
|