Commit Graph
15 Commits
Author SHA1 Message Date
Daniele e0d75a8dc8 ci: stop rebuilding the whole workspace on every run
Nightly Build / build (push) Canceled after 6m16s
Cargo decides freshness by mtime, and the Gitea runner deletes the job
workspace after each run. So `actions/checkout` stamped every source file
with "now" and all 20 workspace crates recompiled regardless of what the
commit touched: measured on a JS-only commit, 20 of 722 rlibs rebuilt —
the ~700 third-party deps stayed cached, our own code never did. That,
not the size of skald-core, was the 4 minutes per architecture.

Restore mtimes from git history after checkout (needs the full history,
hence fetch-depth: 0 — cheap here, ~170 commits against a Gitea instance
on the same machine).

Also:

- nightly: CARGO_INCREMENTAL=1. Release builds have incremental off by
  default, the worst case for a 51k-line crate. The nightly trades a
  marginally less optimised binary for the rebuild time; release does not.
- nightly: concurrency with cancel-in-progress. The runner has capacity 1
  and the nightly publishes to a fixed filename, so a queued build was
  8 minutes spent on a tarball the next one overwrites.
- release: its own CARGO_TARGET_DIR. CARGO_INCREMENTAL is part of cargo's
  profile fingerprint, so one shared cache between a workflow that sets it
  and one that does not would have each invalidate the other's workspace
  crates — reintroducing the very rebuild this removes.
- packaging steps derive --target-dir from $CARGO_TARGET_DIR instead of
  repeating the path, so the two cannot drift.
2026-08-10 18:21:06 +01:00
dguiducci bb5226a9a9 fix: keep the server running after you log out
Nightly Build / build (push) Successful in 7m47s
A `systemctl --user` unit runs under the per-user manager, which systemd
starts at first login and stops when the user's last session ends — so
closing the SSH session that started Skald killed it, and it never came
up at boot. No crash and nothing in the journal: the whole cgroup is
simply torn down. Both installers now enable lingering after installing
the unit, and update.sh carries the same helper so an installation
predating this fix is healed by an ordinary update. A failure to enable
it only ever warns, with the manual command — it must not abort an
install.

Two things found on the way there:

update.sh matched `case "$OS" in Linux) ... Darwin)`, but $OS had already
been normalized to lowercase at the top of the file, so stop_service and
start_service were both silent no-ops. None of the ordering the file
documents at its head was executing: the tarball went over the running
binary (ETXTBSY, aborting the update mid-way) and the safety-net restart
in cleanup() was a no-op too, leaving the box down.

Neither workflow published install.sh / install-nightly.sh to the web
root, so the scripts served by builds.skaldagent.net were hand-copied and
drifting from the repo — an installer fix would reach every existing box
through update.sh but never a new one. Nightly publishes the nightly
installer, release publishes the release one, both with the same atomic
temp-and-rename the tarballs use.

Also on the unit: dropped `After=docker.service`, which a user manager
silently ignores rather than honouring advisorily, and moved
`Restart=on-failure` to `always` — run.sh exits 0 on any graceful
shutdown, including one nobody asked for, which on-failure reads as a
clean stop. That is also what absorbs the boot race against Docker now
that lingering makes us start at boot.
2026-08-06 11:00:13 +01:00
dguiducci 8407a949fc ci, install: update workflows, packaging scripts, and installer suite
Nightly Build / build (push) Successful in 6m43s
Nightly/release workflows: matrix tweaks, artifact path fixes.
Package-macos: streamline dmg build, codesigning improvements.
Install scripts: rewrite install.sh and install-nightly.sh with
robust error handling, add uninstall.sh, overhaul update.sh.
2026-07-22 15:11:17 +01:00
dguiducci bba84a22ff Fix package workflow: add missing --os linux argument
Nightly Build / build (push) Successful in 6m19s
ci/package.sh requires --os (linux|darwin) but both nightly.yml and
release.yml were calling it without --os, causing the build to fail
with 'Missing required argument'. Add --os linux to all 4 package
steps (amd64 + arm64 in each workflow).
2026-07-20 15:36:09 +01:00
dguiducci 44dc67cda0 Setup: utente admin via web, ruoli e run-context con security-group, onboarding install/uninstall script
Nightly Build / build (push) Failing after 6m12s
2026-07-20 12:54:56 +01:00
dguiducci 0e4d38eefc Move CI scripts scripts/ -> ci/ (scripts/ è in gitignore)
Nightly Build / build (push) Failing after 6m4s
2026-07-19 23:54:22 +01:00
dguiducci aba231b641 Fix: gitignore scripts/package.sh e verify-version.sh, tolti da .gitignore
Nightly Build / build (push) Has been cancelled
2026-07-19 23:53:44 +01:00
dguiducci ef20e4362f Debug: print GITHUB_WORKSPACE and file structure
Nightly Build / build (push) Failing after 6m4s
2026-07-19 23:45:23 +01:00
dguiducci 608ce7d513 Fix: cd GITHUB_WORKSPACE in package/deploy steps
Nightly Build / build (push) Failing after 6m4s
2026-07-19 23:36:02 +01:00
dguiducci acb4f20998 CI: persistent CARGO_TARGET_DIR per cache tra build, cargo diretto invece di build.sh
Nightly Build / build (push) Failing after 16m35s
2026-07-19 23:14:19 +01:00
dguiducci 3e2c7d4ae3 Fix: set CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER per cross-compile arm64
Nightly Build / build (push) Has been cancelled
2026-07-19 23:12:22 +01:00
dguiducci 9fe742f9b5 Fix: disabilita whisper-local su Linux (--no-default-features)
Nightly Build / build (push) Failing after 14m57s
2026-07-19 22:54:11 +01:00
dguiducci dc7ce0f924 Fix: switch back to actions/checkout@v4 (runner nativo ha Node.js)
Nightly Build / build (push) Failing after 5m41s
2026-07-19 22:46:57 +01:00
dguiducci 9726f032da Fix: replace actions/checkout with direct git commands (no Node.js in runner)
Nightly Build / build (push) Failing after 1s
Release / verify-version (pull_request) Failing after 0s
Release / release (pull_request) Has been skipped
2026-07-19 22:40:50 +01:00
dguiducci fb3eeeeec6 Refactor: remove desktop/Tauri bundle, add i18n, CI/CD pipeline
Nightly Build / build (push) Failing after 6s
- Remove desktop (Tauri) bundle: docs/desktop.md, icons/, tauri.conf.json,
  src/desktop/mod.rs, gen/schemas/
- Remove build.rs (no longer needed)
- Add i18n system (crates/core-api, plugin-mobile-connector, web)
- Refactor config system (src/config.rs, boot_format.rs)
- Add mobile connector features (app, router, device pairing)
- Plugin system improvements (skald-core)
- Update dependencies (Cargo.lock, Cargo.toml)
- CI/CD: Gitea Actions workflows (nightly + release), package.sh,
  verify-version.sh, builds.skaldagent.net config
2026-07-19 22:35:06 +01:00