Files
Synapse/.gitea/workflows/build.yml
Dasemu b339cbb3b7 Rename product to Synapse; add Gitea CI, VPS deploy templates, RPM build fixes
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.
2026-08-27 12:03:03 +02:00

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