Skip to content

ci: run template tests on macos-15 with the current Node LTS - #248

Merged
rigor789 merged 10 commits into
mainfrom
ci/test-runner
Sep 16, 2026
Merged

rigor789 merged 10 commits into
mainfrom
ci/test-runner

Conversation

@rigor789

@rigor789 rigor789 commented Sep 16, 2026

Copy link
Copy Markdown
Member

The test workflow has not run since GitHub retired the macos-12 image: jobs requesting it never fail, they queue until cancelled, which is what every recent run of it shows (including on #247).

  • runs-on: macos-12macos-15
  • Node matrix 16lts/*; the templates are on NativeScript 9.1 and TypeScript 6, which need Node 20+
  • checkout, setup-node, setup-java, setup-python, cache bumped to their current majors (checkout v7, setup-node v7, setup-java v6, setup-python v7, cache v5), which run on Node 24; the v2 and v4 versions target runtimes GitHub has deprecated
  • fail-fast: false, so one broken template no longer cancels the other 21 jobs
  • concurrency with cancel-in-progress, so a newer push to the same branch cancels the run still going for the old one
  • Android builds on ubuntu-latest, iOS on macos-15, as one template × platform matrix; the macOS jobs no longer pay for the Android build, and Linux jobs do not queue behind the five-concurrent macOS cap
  • the npm cache is keyed per template on its package.json, so the npm install of the created app hits the cache instead of the root-lockfile cache that never matched it
  • a changes job computes the matrix from the diff: only templates whose files changed are built, anything shared (shared-mobile, prepareTemplates.js, root package files, the workflow) builds all of them, Markdown-only pushes build none. On main it diffs against the previous tip, elsewhere against the merge-base with main. Vision and Solid templates stay out of the matrix as before.

The first full run on this branch surfaced two pre-existing template breakages from the NativeScript 9.1 / Angular 22 upgrade in #245:

  • Angular 19+ makes components standalone by default, so template-drawer-navigation-ng, template-tab-navigation-ng and template-master-detail-ng failed at ns build ios with NG6008 for every component still declared in an NgModule. Fixed here: the 18 declared components get standalone: false, and the three templates are bumped to 9.1.1.
  • template-master-detail-vue (Vue 2, nativescript-vue@~2.9.3) fails to compile against @nativescript/core 9: webpack resolves core to a module exporting almost nothing. Left as is; whether to fix or retire the Vue 2 template is a separate call.

🤖 Generated with Claude Code

macos-12 was retired, so every run queued forever waiting for a runner
that no longer exists. Node 16 predates the NativeScript 9.1 and
TypeScript 6 toolchain the templates now use.
@coderabbitai

coderabbitai Bot commented Sep 16, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: edf26ec2-09e6-408e-b9dd-dba6c6ecad59

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

A first job diffs the push against its base (the previous tip on main,
the merge-base with main elsewhere) and feeds the affected templates to
the build matrix. Shared inputs rebuild everything; Markdown-only
changes build nothing.
Angular 19 made components standalone by default, so after the move to
Angular 22 the drawer, tab and master-detail templates failed to build
with NG6008 for every component their modules declare. Each of the three
templates is bumped a patch.
…plate

Angular 22 type-checks templates: the door selector binds a number and
a number array to inputs typed as strings, and the list tap event from
a custom element is typed as Event.
Android needs nothing from macOS, so it moves to ubuntu runners where
it neither costs macOS minutes nor queues behind the five-runner cap.
The npm cache is keyed on the template's own package.json instead of
the repo root lockfile, which the created app never installs from.
Comment thread .github/workflows/test.yml Fixed
Comment thread .github/workflows/test.yml Fixed
The ubuntu image has the SDK but not the emulator package; the check
treats that as fatal although compilation does not need it.
@rigor789
rigor789 merged commit c78cf63 into main Sep 16, 2026
47 of 49 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants