Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ runs:
using: composite
steps:
- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version-file: .nvmrc

- name: Restore dependencies
id: yarn-cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v6
with:
path: |
**/node_modules
Expand All @@ -28,7 +28,7 @@ runs:

- name: Cache dependencies
if: steps.yarn-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
uses: actions/cache/save@v6
with:
path: |
**/node_modules
Expand Down
22 changes: 11 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup
uses: ./.github/actions/setup
Expand All @@ -31,7 +31,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup
uses: ./.github/actions/setup
Expand All @@ -43,7 +43,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup
uses: ./.github/actions/setup
Expand All @@ -57,13 +57,13 @@ jobs:
TURBO_CACHE_DIR: .turbo/android
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup
uses: ./.github/actions/setup

- name: Cache turborepo for Android
uses: actions/cache@v4
uses: actions/cache@v6
with:
path: ${{ env.TURBO_CACHE_DIR }}
key: ${{ runner.os }}-turborepo-android-${{ hashFiles('yarn.lock') }}
Expand All @@ -87,7 +87,7 @@ jobs:

- name: Install JDK
if: env.turbo_cache_hit != 1
uses: actions/setup-java@v4
uses: actions/setup-java@v6
with:
distribution: 'zulu'
java-version: '17'
Expand All @@ -99,7 +99,7 @@ jobs:

- name: Cache Gradle
if: env.turbo_cache_hit != 1
uses: actions/cache@v4
uses: actions/cache@v6
with:
path: |
~/.gradle/wrapper
Expand All @@ -121,13 +121,13 @@ jobs:
TURBO_CACHE_DIR: .turbo/ios
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup
uses: ./.github/actions/setup

- name: Cache turborepo for iOS
uses: actions/cache@v4
uses: actions/cache@v6
with:
path: ${{ env.TURBO_CACHE_DIR }}
key: ${{ runner.os }}-turborepo-ios-${{ hashFiles('yarn.lock') }}
Expand Down Expand Up @@ -158,7 +158,7 @@ jobs:
- name: Restore cocoapods
if: env.turbo_cache_hit != 1
id: cocoapods-cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v6
with:
path: |
**/ios/Pods
Expand All @@ -175,7 +175,7 @@ jobs:

- name: Cache cocoapods
if: env.turbo_cache_hit != 1 && steps.cocoapods-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
uses: actions/cache/save@v6
with:
path: |
**/ios/Pods
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
steps:
- name: Run release-please
id: release
uses: googleapis/release-please-action@v4
uses: googleapis/release-please-action@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}

Expand All @@ -40,7 +40,7 @@ jobs:
id-token: write # npm publish provenance
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
fetch-depth: 0
fetch-tags: true
Expand All @@ -49,7 +49,7 @@ jobs:
uses: ./.github/actions/setup

- name: Configure npm registry auth
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version-file: .nvmrc
registry-url: 'https://registry.npmjs.org'
Expand Down Expand Up @@ -83,7 +83,7 @@ jobs:
contents: write # edit the GitHub Release
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
fetch-depth: 0
fetch-tags: true
Expand Down
2 changes: 2 additions & 0 deletions docs/agent/log.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ conventional commits, what needs a device — are in

## Runs

- **2026-10-08** — **#41: actions moved to Node 24 majors ([#55](https://github.com/tristanheilman/react-native-object-capture/pull/55)).** checkout v7, setup-node v7, cache v6, setup-java v6, release-please-action v5. setup-xcode@v1 already targets node24. Every bumped action's `action.yml` reads `using: node24`. The PR's CI had zero `Node.js 20 is deprecated` lines across all five jobs, on a cold run that exercised setup-java, setup-xcode and the cache saves. A re-run hit the turbo caches (iOS 9m43s → 1.5 min). release-please v5 runs only on `main`, so it's verified on the push after merge. The publish path is verified on the next release: setup-node v7 no longer exports a placeholder `NODE_AUTH_TOKEN`, and the publish step sets its own. `.nvmrc` is unchanged, per the plan. **Two older cache problems found along the way, not fixed here:** (1) `ci.yml`'s `Cache cocoapods` save reads `steps.cocoapods-cache.outputs.cache-key`, but the restore action's output is `cache-primary-key`. The save logs `Key is not specified` and has never stored anything since the initial commit, so every cold iOS build re-runs `pod install` (~73s). (2) Caches are scoped to the ref that saved them, and CI never runs on `main`, so a PR can only read `main`'s yarn cache (seeded by `release.yml`'s publish job). Gradle, Pods and turbo caches start cold on every PR.

- **2026-10-08** — **Shipped 0.2.9** (the #36 `onDimensions` fix) to npm with provenance. npm's homepage now points at the site. The Release workflow's AI-notes step failed with `credit balance is too low` from the Anthropic API. It's `continue-on-error`, so the publish went through, but the release kept release-please's plain notes. Re-running the Release job can't fix that: the notes step comes after `npm publish`, which refuses a version that already exists. Fixed two ways. In `release.yml` the notes now run as their own `notes` job after `publish`, without `continue-on-error`: a failure shows red without touching the release, and "Re-run failed jobs" retries only the notes. `publish` drops to `contents: read`. Added `.github/workflows/release-notes.yml` (manual dispatch with a `tag` input) for releases cut before the split: `gh workflow run release-notes.yml -f tag=v0.2.9`.

- **2026-10-07** — **Public site and demo video** (`website/`, deployed by `.github/workflows/pages.yml`; README GIF closes #28). Design and plan: [`plans/2026-10-07-public-website-and-demo-video.md`](plans/2026-10-07-public-website-and-demo-video.md). Re-cut the video with `website/scripts/make-demo.sh <capture> <ending>`. The source recordings aren't in the repo, and the capture recording's own ending shows pre-#50 sizes, which the script cuts. Cloudflare Web Analytics beacon in the page. It reports only from `tristanheilman.github.io`, so localhost shows a CORS error, which is expected. A final review found two Important issues: the size tile disagreed with the video, and `og:image` was relative. Both fixed, plus 320 px overflow (upgraded from Minor because Display Zoom iPhones use 320). **Deferred minors, for the owner:** the tile label says `onDimensions` where the public API is `addDimensionsListener`; the copy-fallback label 'Press ⌘C' assumes a Mac; 'Expo works too' could read as Expo Go (it needs prebuild/dev client); `make-demo.sh` has no usage message and its `stat -f%z` is macOS-only.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Move CI off the Node 20 action runtime — bump action majors, and decide separately what `.nvmrc` should pin

**Date:** 2026-09-02
**Status:** proposed — ready to execute, no blockers
**Status:** done — [#55](https://github.com/tristanheilman/react-native-object-capture/pull/55), 2026-10-08. `.nvmrc` still open, see Out of scope.
**Tracks:** [#41](https://github.com/tristanheilman/react-native-object-capture/issues/41)
**Type:** CI maintenance (fully codeable, no owner action, no device)
**Effort:** Low (~1 hr) · **Impact:** Medium (removes a live deprecation that GitHub is currently papering over; no user-facing change)
Expand Down
Loading