Files
Motionity/README.md
T
kawaandClaude Opus 5 f2b9f28d14 build: add Gitea release scripts and npm entry points
scripts/build-release.ps1 packages the desktop installers; scripts/publish.ps1
pushes the container image to git.azuze.fr and attaches the installers to the
Gitea release for the same tag. The split keeps a local build free of any
credential, and lets a failed upload be retried with -BinariesOnly
-NoBinaryBuild without paying for the build again.

Two details the plain `npm run dist:*` path gets wrong for a release:

- package.json's global artifactName resolves NSIS and portable to the same
  file name, so one silently overwrites the other. The build script passes
  distinct -c.nsis.artifactName / -c.portable.artifactName.
- Artifact names now carry the tag, so publish.ps1 can glob exactly one tag's
  files and never ship a stale one. electron-builder's update metadata
  (.blockmap, latest*.yml, the NSIS .7z payload) is swept out of dist/ so it
  cannot match that glob and end up attached to the release.

The tag defaults to v<package.json version> rather than git describe, because
electron-builder stamps package.json into the app: a SHA-based tag would name
an installer whose About box disagrees with it.

Also brings scripts/server.cjs, vendor.mjs and make-icon.cjs under version
control, which the release scripts and the Docker build both call.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 12:56:11 +02:00

38 lines
1.3 KiB
Markdown

# Motionity
This is a fork of the original project aiming to fix issues and add features.
## Running it
```bash
npm run vendor # downloads the third-party libraries into src/vendor/
npm start # http://127.0.0.1:8080
```
Three packaged distributions are available — desktop (Windows `.exe`, Linux
AppImage and Flatpak), a Docker image, and a bare-metal install. Build
instructions for all of them are in [PACKAGING.md](PACKAGING.md).
```bash
npm run dev # desktop app from source
npm run dist:win # Windows installer + portable exe
npm run dist:linux # AppImage + Flatpak
npm run docker:build # container image
```
## Releasing
```powershell
./scripts/build-release.ps1 # installers + SHA256SUMS.txt in dist/
./scripts/publish.ps1 -PublishRelease # + image push and Gitea release upload
```
`build-release.ps1` needs no credentials. `publish.ps1` needs a Gitea token with
package read/write (image push) and `write:repository` (release upload), read
from `$env:GITEA_TOKEN` or prompted for. `-BinariesOnly -NoBinaryBuild` retries a
failed upload without rebuilding.
One rule applies to every target: browsers expose WebCodecs (the fast exporter)
and IndexedDB (project saving) only in a secure context. `http://localhost`
qualifies; a plain-HTTP LAN address does not. Serve it over TLS anywhere else.