Rebrands user-facing product identity from Logseq to Synapse (package metadata, Electron appId/protocol scheme, Android/iOS display names, HTML titles, and the English UI dictionary), authored by Darío Sevilla <dario@dariosevilla.es>. Internal Clojure namespaces, :logseq.class/* and :logseq.property/* DB schema idents, and deps.edn's upstream git dependency coordinates are intentionally left untouched -- those are either persisted data in existing graphs or point at real upstream repos, and renaming them has no user-visible benefit. Also: - .gitea/workflows/build.yml: Linux (AppImage/deb/rpm), Windows (nsis), and Android (debug APK) build jobs. - deploy/: systemd unit + Caddyfile templates for a self-hosted VPS (daemon on loopback, Caddy reverse-proxies /v1/*, /mcp, /healthz and serves the static web client with TLS). - gulpfile.js / prepare-desktop-runtime-js.mjs: LOGSEQ_SKIP_CLI_BUNDLE skips the cli/ OCaml package (no toolchain in this environment) instead of failing the build; LOGSEQ_ELECTRON_BUILDER_ARGS lets CI override the packaged Linux targets independently of the local default. - resources/electron-builder.yml: drop the extraResources entry for a SKILL.md that doesn't exist in this fork, and the author.email fix needed for the rpm/deb targets' Packager/Maintainer metadata.
140 lines
3.6 KiB
YAML
140 lines
3.6 KiB
YAML
name: Build packages
|
|
|
|
# Runs only on demand or when a release tag is pushed -- these builds are
|
|
# long (cljs release compile + webpack + native packaging per platform) so
|
|
# they don't run on every push.
|
|
on:
|
|
workflow_dispatch: {}
|
|
push:
|
|
tags:
|
|
- "v*"
|
|
|
|
env:
|
|
# The `cli/` OCaml/dune package (a separate CLI companion tool) isn't
|
|
# bundled: this fork doesn't have the opam/dune toolchain wired into CI,
|
|
# and the `.agents/skills/logseq-cli/SKILL.md` doc it also depends on
|
|
# doesn't exist in this repo yet. Both the desktop-runtime staging script
|
|
# and gulpfile.js's prepareElectronMaker respect this flag by skipping the
|
|
# CLI-only steps instead of failing. Unset (or set to '0') once the CLI
|
|
# toolchain and skill doc are added.
|
|
LOGSEQ_SKIP_CLI_BUNDLE: "1"
|
|
|
|
jobs:
|
|
linux:
|
|
name: Linux (AppImage, deb, rpm)
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install rpmbuild
|
|
run: sudo apt-get update && sudo apt-get install -y rpm
|
|
|
|
- uses: actions/setup-java@v4
|
|
with:
|
|
distribution: temurin
|
|
java-version: "21"
|
|
|
|
- uses: DeLaGuardo/setup-clojure@13.1
|
|
with:
|
|
cli: 1.12.5.1664
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "22"
|
|
cache: pnpm
|
|
|
|
- uses: pnpm/action-setup@v4
|
|
|
|
- run: pnpm install --frozen-lockfile
|
|
|
|
- name: Build unsigned AppImage/deb/rpm
|
|
env:
|
|
LOGSEQ_ELECTRON_BUILDER_ARGS: "--linux AppImage deb rpm"
|
|
run: pnpm release-electron:unsigned
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: logseq-linux
|
|
path: |
|
|
static/dist/*.AppImage
|
|
static/dist/*.deb
|
|
static/dist/*.rpm
|
|
if-no-files-found: error
|
|
|
|
windows:
|
|
name: Windows (nsis)
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-java@v4
|
|
with:
|
|
distribution: temurin
|
|
java-version: "21"
|
|
|
|
- uses: DeLaGuardo/setup-clojure@13.1
|
|
with:
|
|
cli: 1.12.5.1664
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "22"
|
|
cache: pnpm
|
|
|
|
- uses: pnpm/action-setup@v4
|
|
|
|
- run: pnpm install --frozen-lockfile
|
|
|
|
- name: Build unsigned nsis installer
|
|
run: pnpm release-electron:unsigned
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: logseq-windows
|
|
path: |
|
|
static/dist/*.exe
|
|
static/dist/*.zip
|
|
if-no-files-found: error
|
|
|
|
android:
|
|
name: Android (debug APK)
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-java@v4
|
|
with:
|
|
distribution: temurin
|
|
java-version: "21"
|
|
|
|
- uses: android-actions/setup-android@v3
|
|
|
|
- name: Install Android SDK platform/build-tools
|
|
run: sdkmanager "platforms;android-36" "build-tools;36.0.0"
|
|
|
|
- uses: DeLaGuardo/setup-clojure@13.1
|
|
with:
|
|
cli: 1.12.5.1664
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "22"
|
|
cache: pnpm
|
|
|
|
- uses: pnpm/action-setup@v4
|
|
|
|
- run: pnpm install --frozen-lockfile
|
|
|
|
- name: Build web assets and sync into the Android project
|
|
run: pnpm sync-android-release
|
|
|
|
- name: Assemble debug APK
|
|
working-directory: android
|
|
run: ./gradlew assembleDebug --no-daemon
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: logseq-android
|
|
path: android/app/build/outputs/apk/debug/*.apk
|
|
if-no-files-found: error
|