mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
Merge pull request #201 from TriliumNext/feature/fix_build_scripts
Fix build scripts & add CI for running them
This commit is contained in:
commit
d66a70f099
@ -7,3 +7,4 @@
|
|||||||
node_modules
|
node_modules
|
||||||
|
|
||||||
src/**/*.ts
|
src/**/*.ts
|
||||||
|
!src/services/asset_path.ts
|
75
.github/workflows/main.yml
vendored
75
.github/workflows/main.yml
vendored
@ -7,6 +7,81 @@ env:
|
|||||||
REGISTRY: ghcr.io
|
REGISTRY: ghcr.io
|
||||||
IMAGE_NAME: ${{ github.repository }}
|
IMAGE_NAME: ${{ github.repository }}
|
||||||
jobs:
|
jobs:
|
||||||
|
build_darwin-x64:
|
||||||
|
name: Build macOS x86_64
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Set up node & dependencies
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 18
|
||||||
|
cache: "npm"
|
||||||
|
- run: npm ci
|
||||||
|
- run: ./bin/build-mac-x64.sh
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: trilium-mac-x64.zip
|
||||||
|
path: dist/trilium-mac-x64*.zip
|
||||||
|
build_linux-x64:
|
||||||
|
name: Build Linux x86_64
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Set up node & dependencies
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 18
|
||||||
|
cache: "npm"
|
||||||
|
- run: npm ci
|
||||||
|
- run: ./bin/build-linux-x64.sh
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: trilium-linux-x64.tar.xz
|
||||||
|
path: dist/trilium-linux-x64-*.tar.xz
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: trilium_amd64.deb
|
||||||
|
path: dist/trilium_*.deb
|
||||||
|
build_linux_server-x64:
|
||||||
|
name: Build Linux Server x86_64
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Set up node & dependencies
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 18
|
||||||
|
cache: "npm"
|
||||||
|
- run: npm ci
|
||||||
|
- run: ./bin/build-server.sh
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: trilium-linux-x64-server.tar.xz
|
||||||
|
path: dist/trilium-linux-x64-server-*.tar.xz
|
||||||
|
build_windows-x64:
|
||||||
|
name: Build Windows x86_64
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Set up Wine
|
||||||
|
run: |
|
||||||
|
sudo dpkg --add-architecture i386
|
||||||
|
wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
|
||||||
|
sudo add-apt-repository ppa:cybermax-dexter/sdl2-backport
|
||||||
|
sudo apt-add-repository "deb https://dl.winehq.org/wine-builds/ubuntu $(lsb_release -cs) main"
|
||||||
|
sudo apt install --install-recommends winehq-stable
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Set up node & dependencies
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 18
|
||||||
|
cache: "npm"
|
||||||
|
- run: npm ci
|
||||||
|
- run: ./bin/build-win-x64.sh
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: trilium-windows-x64.zip
|
||||||
|
path: dist/trilium-windows-x64-*.zip
|
||||||
build_docker:
|
build_docker:
|
||||||
name: Build Docker image
|
name: Build Docker image
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -34,7 +34,8 @@ RUN set -x \
|
|||||||
&& npm prune --omit=dev \
|
&& npm prune --omit=dev \
|
||||||
&& cp src/public/app/share.js src/public/app-dist/. \
|
&& cp src/public/app/share.js src/public/app-dist/. \
|
||||||
&& cp -r src/public/app/doc_notes src/public/app-dist/. \
|
&& cp -r src/public/app/doc_notes src/public/app-dist/. \
|
||||||
&& rm -rf src/public/app
|
&& rm -rf src/public/app \
|
||||||
|
&& rm src/services/asset_path.ts
|
||||||
|
|
||||||
# Some setup tools need to be kept
|
# Some setup tools need to be kept
|
||||||
RUN apk add --no-cache su-exec shadow
|
RUN apk add --no-cache su-exec shadow
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
shopt -s globstar
|
||||||
|
set -e
|
||||||
|
|
||||||
if [[ $# -eq 0 ]] ; then
|
if [[ $# -eq 0 ]] ; then
|
||||||
echo "Missing argument of target directory"
|
echo "Missing argument of target directory"
|
||||||
exit 1
|
exit 1
|
||||||
@ -9,25 +12,36 @@ if ! [[ $(which npm) ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
n exec 18.18.2 npm run webpack || npm run webpack
|
# Trigger the TypeScript build
|
||||||
|
echo TypeScript build start
|
||||||
|
npx tsc
|
||||||
|
echo TypeScript build finished
|
||||||
|
|
||||||
|
# Copy the TypeScript artifacts
|
||||||
DIR="$1"
|
DIR="$1"
|
||||||
|
|
||||||
rm -rf "$DIR"
|
rm -rf "$DIR"
|
||||||
mkdir -pv "$DIR"
|
mkdir -pv "$DIR"
|
||||||
|
|
||||||
|
echo Webpack start
|
||||||
|
npm run webpack
|
||||||
|
echo Webpack finish
|
||||||
|
|
||||||
echo "Copying Trilium to build directory $DIR"
|
echo "Copying Trilium to build directory $DIR"
|
||||||
|
|
||||||
for d in 'images' 'libraries' 'src' 'db'; do
|
for d in 'images' 'libraries' 'src' 'db'; do
|
||||||
cp -r "$d" "$DIR"/
|
cp -r "$d" "$DIR"/
|
||||||
done
|
done
|
||||||
for f in 'package.json' 'package-lock.json' 'README.md' 'LICENSE' 'config-sample.ini' 'electron.js'; do
|
|
||||||
|
for f in 'package.json' 'package-lock.json' 'README.md' 'LICENSE' 'config-sample.ini'; do
|
||||||
cp "$f" "$DIR"/
|
cp "$f" "$DIR"/
|
||||||
done
|
done
|
||||||
cp webpack-* "$DIR"/ # here warning because there is no 'webpack-*', but webpack.config.js only
|
|
||||||
|
script_dir=$(realpath $(dirname $0))
|
||||||
|
cp -Rv "$script_dir/../build/src" "$DIR"
|
||||||
|
cp "$script_dir/../build/electron.js" "$DIR"
|
||||||
|
|
||||||
# run in subshell (so we return to original dir)
|
# run in subshell (so we return to original dir)
|
||||||
(cd $DIR && n exec 18.18.2 npm install --only=prod)
|
(cd $DIR && npm install --only=prod)
|
||||||
|
|
||||||
if [[ -d "$DIR"/node_modules ]]; then
|
if [[ -d "$DIR"/node_modules ]]; then
|
||||||
# cleanup of useless files in dependencies
|
# cleanup of useless files in dependencies
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
"build-backend-docs": "rm -rf ./docs/backend_api && ./node_modules/.bin/jsdoc -c jsdoc-conf.json -d ./docs/backend_api src/becca/entities/*.js src/services/backend_script_api.js src/services/sql.js",
|
"build-backend-docs": "rm -rf ./docs/backend_api && ./node_modules/.bin/jsdoc -c jsdoc-conf.json -d ./docs/backend_api src/becca/entities/*.js src/services/backend_script_api.js src/services/sql.js",
|
||||||
"build-frontend-docs": "rm -rf ./docs/frontend_api && ./node_modules/.bin/jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/basic_widget.js src/public/app/widgets/note_context_aware_widget.js src/public/app/widgets/right_panel_widget.js",
|
"build-frontend-docs": "rm -rf ./docs/frontend_api && ./node_modules/.bin/jsdoc -c jsdoc-conf.json -d ./docs/frontend_api src/public/app/entities/*.js src/public/app/services/frontend_script_api.js src/public/app/widgets/basic_widget.js src/public/app/widgets/note_context_aware_widget.js src/public/app/widgets/right_panel_widget.js",
|
||||||
"build-docs": "npm run build-backend-docs && npm run build-frontend-docs",
|
"build-docs": "npm run build-backend-docs && npm run build-frontend-docs",
|
||||||
"webpack": "webpack -c webpack.config.js",
|
"webpack": "webpack -c webpack.config.ts",
|
||||||
"test-jasmine": "TRILIUM_DATA_DIR=~/trilium/data-test jasmine",
|
"test-jasmine": "TRILIUM_DATA_DIR=~/trilium/data-test jasmine",
|
||||||
"test-es6": "node -r esm spec-es6/attribute_parser.spec.js ",
|
"test-es6": "node -r esm spec-es6/attribute_parser.spec.js ",
|
||||||
"test": "npm run test-jasmine && npm run test-es6",
|
"test": "npm run test-jasmine && npm run test-es6",
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
const path = require('path');
|
import path = require('path');
|
||||||
const assetPath = require('./src/services/asset_path');
|
import assetPath = require('./src/services/asset_path');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
mode: 'production',
|
mode: 'production',
|
Loading…
x
Reference in New Issue
Block a user