Skip to content

build-one: add firmware_ref input for cross-repo bisect#94

Merged
widgetii merged 1 commit into
masterfrom
feat/firmware-ref-input-for-bisect
May 24, 2026
Merged

build-one: add firmware_ref input for cross-repo bisect#94
widgetii merged 1 commit into
masterfrom
feat/firmware-ref-input-for-bisect

Conversation

@widgetii

Copy link
Copy Markdown
Member

Summary

Adds a clean mechanism to pin OpenIPC/firmware to a specific ref (SHA / tag / branch) when running build-one.yml. Two-file change.

What's new

gh workflow run build-one.yml \
  -f platform=hi3516ev200_fpv \
  -f firmware_ref=<sha-or-tag-or-branch>
  • New optional input firmware_ref on build-one.yml.
  • Workflow exports OPENIPC_FW_REV env to the Build firmware step.
  • builder.sh honours $OPENIPC_FW_REV: when set, does a full clone (not --depth=1) and git checkout to the requested ref. When unset, behaviour is unchanged (shallow clone of master HEAD).

Immediate motivation

Bisect the +180 KB rootfs growth in hi3516ev200_fpv between 2026-05-08 (5016 KB) and 2026-05-24 (5196 KB, 76 KB over the 5120 KB partition limit). The first builder cron under the new mirror code surfaced this as a real content regression; suspect is recent hisilicon-opensdk bumps that brought in source-built sensor drivers for ev200, but no single commit accounts for the full growth. Bisect across HISILICON_OPENSDK_VERSION values via this input will pinpoint which bump pushed us over.

See kaeru note hi3516ev200-ev300-fpv-rootfs-size-overflow-2026-05-24 for the full investigation.

Generally useful long after this incident

  • Reproducing user-reported regressions at a specific firmware tag.
  • Locking builds to a known-good firmware revision when builder is ahead of firmware.
  • Future cross-repo bisects of any kind.

Test plan

  • CI parses YAML.
  • After merge: gh workflow run build-one.yml -f platform=hi3516ev200_fpv -f firmware_ref=7fc6cda4 (firmware tip ~3 weeks ago) → builder.sh logs Downloading Firmware @ 7fc6cda4 and the build proceeds at that ref.
  • Same command without firmware_ref → behaviour unchanged (shallow clone of master HEAD).

🤖 Generated with Claude Code

When investigating a regression that lives in OpenIPC/firmware (or its
referenced packages like hisilicon-opensdk) but only manifests in a
builder build, you previously had to either roll firmware master back
or fork builder.sh manually. Adds a clean way:

  gh workflow run build-one.yml -f platform=hi3516ev200_fpv \
                                -f firmware_ref=<sha-or-tag-or-branch>

The workflow exports OPENIPC_FW_REV as env, which builder.sh now
honours: when set, it does a full clone (not --depth=1) and checks
out the requested ref before invoking the firmware build. When unset,
behaviour is unchanged (shallow clone of master HEAD).

Immediate motivation: bisect the +180 KB rootfs growth in
hi3516ev200_fpv between 2026-05-08 (5016 KB) and 2026-05-24 (5196 KB,
76 KB over partition limit). Per kaeru
'hi3516ev200-ev300-fpv-rootfs-size-overflow-2026-05-24'. Suspect is
recent hisilicon-opensdk bumps that brought in source-built sensor
drivers for ev200; bisect across firmware commits varying
HISILICON_OPENSDK_VERSION will pinpoint which bump pushed us past
the 5120 KB limit.

Generally useful long after this specific incident:
- Reproducing user-reported regressions at a specific firmware tag.
- Locking builds to a known-good firmware revision when builder is
  ahead of firmware.
- Future cross-repo bisects of any kind.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@widgetii widgetii merged commit 25ed956 into master May 24, 2026
@widgetii widgetii deleted the feat/firmware-ref-input-for-bisect branch May 24, 2026 06:31
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.

1 participant