Aventuras/scripts
Tony Frazier afdb534071
Some checks are pending
CI / build-desktop (push) Waiting to run
CI / build-android (push) Waiting to run
Overhaul CI/CD: Node 24, shared release workflows, faster cached builds (#518)
## Summary

Node 24 migration, plus a CI/CD overhaul that puts desktop and Android
builds behind one shared,
cached, and now release-safe set of workflows — used by pull-request
validation, `master`, and
both release tracks alike.

## What changed

**Node & Actions**
- Node 24, tracked via `.nvmrc` (`package.json`'s `devEngines` enforces
it; the README points at
  `.nvmrc` instead of a hardcoded version)
- GitHub Actions bumped off versions that were 1-3 majors behind,
several still on the deprecated
  Node 20 runtime

**Shared, safer release workflows**
- Desktop and Android build jobs now live in reusable workflows
(`build-desktop.yml`,
`build-android.yml`), called by `master`/PR validation and both
`release.yml` and
`pre-release.yml` with a `publish`/`prerelease` switch — previously each
release workflow
  duplicated its own copy of the whole build matrix
- A `create-release` job creates the release once per run, so the build
matrix's parallel legs
  stop racing to create duplicate draft releases
- A release-safety guard now refuses to run when the tag's release is
already published, or when
a pushed tag doesn't match `tauri.conf.json`'s version — protects a
shipped release's assets and
  `prerelease` flag from a stray `workflow_dispatch` or job re-run
- Pre-releases are now created as a draft and only published once every
platform build succeeds,
  matching how stable releases already worked
- Runners are pinned (`macos-15`, `windows-2025`) instead of tracking
`-latest`, and the Linux
desktop build runs inside an `ubuntu:22.04` container, independent of
the `ubuntu-latest` host's
  own lifecycle

**CI now builds and caches on `master`**
- Every platform now builds on `master` (on push, a weekly schedule, and
manual dispatch) without
publishing, so tag-triggered release builds — which can only restore
caches from the tag itself
or the default branch — no longer start cold, and every push leaves a
downloadable per-platform
  build
- Rust, Gradle and npm all get real caches now; the npm cache key
ignores the version-bump commit
  every release makes, so releases hit the cache too
- `lint-and-typecheck.yml` now also runs `npm test`, which CI never did
before, and installs
  dependencies through the same cached action as the rest of CI

**Build changes**
- Android builds an APK only (the AAB was built and discarded every run)
and drops the 32-bit
`x86` target; it uses the runner's preinstalled NDK instead of
downloading one, and drops the
  Android SDK's no-longer-published `tools` package
- A release-mode Tauri config drops the `devtools` feature from release
builds
- A CI-only build gets a SHA-suffixed version instead of silently
reusing the last release's
  version

**Fixes found along the way**
- A release-name typo (`Aventura` → `Aventuras`) that `tauri-action`
would otherwise have kept
  reverting
- The CI version suffix can no longer produce an invalid semver
identifier

## Docs

`docs/development/release.md` substantially rewritten to cover the
shared-workflow architecture,
the release-safety guard, the caching setup, and the build-version
scheme.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added automated desktop and Android builds for Linux, Windows, macOS,
and Android.
- Added signed artifacts, draft releases, prereleases, and
platform-specific downloads.
- Added scheduled and manually triggered builds that create downloadable
artifacts without publishing a release.
- Added macOS Apple Silicon and Linux RPM packages, plus updated Android
and desktop asset naming.
  - Added safeguards to prevent duplicate uploads to published releases.

- **Documentation**
- Updated build prerequisites and documented automated linting,
type-checking, tests, and builds.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 22:38:32 -04:00
..
ci Overhaul CI/CD: Node 24, shared release workflows, faster cached builds (#518) 2026-09-16 22:38:32 -04:00
android-setup.sh Current 2026-01-01 14:55:31 -07:00
check_migrations.js Fix CRLF Migrations (#162) 2026-02-22 15:46:59 -05:00
check_wry_injection.js Add Incognito Keyboard option for Android (#467) 2026-08-26 20:45:30 -04:00
release.js Overhaul CI/CD: Node 24, shared release workflows, faster cached builds (#518) 2026-09-16 22:38:32 -04:00
remote.js Release script: push over the contributor's own remote instead of a hardcoded HTTPS URL (#432) 2026-08-08 22:08:59 +02:00
remote.test.js Release script: push over the contributor's own remote instead of a hardcoded HTTPS URL (#432) 2026-08-08 22:08:59 +02:00
version.js Overhaul CI/CD: Node 24, shared release workflows, faster cached builds (#518) 2026-09-16 22:38:32 -04:00
version.test.js Validated release script, extracted version arithmetic, lint config fixes (#416) 2026-08-08 19:55:23 +02:00