Skip to content

Expose Workbench functional smoke workflow on default branch - #375

Merged
100yenadmin merged 3 commits into
mainfrom
codex/workbench-functional-smoke-main-20260622
Jun 22, 2026
Merged

Expose Workbench functional smoke workflow on default branch#375
100yenadmin merged 3 commits into
mainfrom
codex/workbench-functional-smoke-main-20260622

Conversation

@100yenadmin

@100yenadmin 100yenadmin commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • add the manual Workbench Functional Smoke workflow to default main so GitHub exposes workflow_dispatch
  • the workflow input still defaults to building evaos/beta-rc-20260612
  • this makes the fast macOS arm64 unpacked .app proof lane usable without running public Build and Release

Why

PR #373 added the workflow to evaos/beta-rc-20260612, but GitHub only lists manual workflows from the default branch. This PR exposes the dispatcher while preserving release-branch checkout through the ref input.

Validation

Fixes #372.

Summary by CodeRabbit

Release Notes

  • Chores
    • Added a new GitHub Actions workflow for manual “Workbench Functional Smoke” runs on macOS arm64.
    • Builds a macOS app from a selectable ref, with optional guardrail auditing before packaging.
    • Verifies the resulting app includes required embedded resources, then archives it as a zip alongside a SHA-256 checksum artifact (with 7-day retention).

@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 25be0281-ecf9-45af-838f-b31e3333ce5a

📥 Commits

Reviewing files that changed from the base of the PR and between 0ff26f9 and ad75d2d.

📒 Files selected for processing (1)
  • .github/workflows/workbench-functional-smoke.yml
📜 Recent review details
⏰ Context from checks skipped due to timeout. (9)
  • GitHub Check: Build Test (linux)
  • GitHub Check: Coverage Test
  • GitHub Check: Build Test (macos-x64)
  • GitHub Check: Unit Tests (windows-2022)
  • GitHub Check: Unit Tests (macos-14)
  • GitHub Check: Build Test (macos-arm64)
  • GitHub Check: Unit Tests (ubuntu-latest)
  • GitHub Check: Build Test (windows-arm64)
  • GitHub Check: Build Test (windows-x64)
🔇 Additional comments (1)
.github/workflows/workbench-functional-smoke.yml (1)

35-191: LGTM!


📝 Walkthrough

Walkthrough

Adds .github/workflows/workbench-functional-smoke.yml, a manual-dispatch workflow that builds an unpacked macOS arm64 Electron app, optionally runs beta/upstream guardrail scripts, verifies embedded bridge artifacts and versions, writes a step summary, then uploads a zipped artifact with SHA-256 checksum and 7-day retention.

Changes

Workbench Functional Smoke Workflow

Layer / File(s) Summary
Workflow trigger, permissions, concurrency, and env
.github/workflows/workbench-functional-smoke.yml
workflow_dispatch with ref and run_guardrails inputs, contents: read permission, per-ref concurrency cancellation, and CI environment variables.
macOS arm64 build job
.github/workflows/workbench-functional-smoke.yml
Checkout, Node 22/Bun/Python 3.12 setup, Electron artifact caching, bun install --frozen-lockfile, best-effort postinstall, native module rebuild, optional guardrail script execution, and unpacked app build via node scripts/build-with-builder.js arm64 --mac dir --arm64.
App verification and step summary
.github/workflows/workbench-functional-smoke.yml
Locates .app, validates bridge executable, manifest.json, Aioncore, and hub directories, extracts CFBundleIdentifier/version from Info.plist, reads bridge version from manifest.json, and writes structured step summary with artifact size.
Archive, checksum, and artifact upload
.github/workflows/workbench-functional-smoke.yml
Zips verified .app to macOS arm64 archive, computes SHA-256 checksum file, and uploads both with 7-day retention.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: exposing the Workbench functional smoke workflow on the default branch to enable GitHub's workflow_dispatch functionality.
Description check ✅ Passed The description covers the core purpose and reasoning, though it lacks formal structure alignment with the template's sections and missing checkboxes for testing/validation items.
Linked Issues check ✅ Passed The PR fulfills all coding requirements from issue #372: manual workflow, macOS arm64 only, unpacked .app, bridge verification, SHA/version recording, 7-day artifact retention, and workflow_dispatch exposure on default branch.
Out of Scope Changes check ✅ Passed All changes are scoped to the single workflow file addition, directly addressing issue #372 without introducing unrelated modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/workbench-functional-smoke-main-20260622

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/workbench-functional-smoke.yml:
- Around line 146-151: The issue is that GitHub Actions expressions using ${{ }}
syntax are being directly interpolated inside the shell script body (in the echo
commands), which creates a potential command injection vulnerability if values
contain shell metacharacters. To fix this, move the dynamic values from
inputs.ref and steps.commit.outputs.sha outside of the shell script expansion.
Instead, define these values as environment variables using the env: section
before the run: block, and then reference those environment variables using
standard shell variable syntax (like $VARIABLE_NAME) within the echo commands.
Apply this same approach to both occurrences mentioned in the comment.
- Around line 41-44: The Checkout action in the workbench-functional-smoke
workflow is persisting git credentials by default, creating an unnecessary
security exposure since this workflow never performs git push operations. Add
the persist-credentials parameter set to false in the with section of the
actions/checkout@v6 action to disable credential persistence.
- Line 42: In the workbench-functional-smoke.yml workflow file, all action
references that currently use version tags (such as `@v6`) need to be replaced
with their corresponding full commit SHAs for supply-chain integrity. For each
uses statement that references an action with a version tag (including
actions/checkout and any other actions in the workflow), resolve the full commit
SHA from that action's official repository and update the reference format from
action-name@vX to action-name@full-commit-sha. This applies to all affected
action references throughout the workflow file to ensure immutable pinning of
all external actions.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 854f8a31-41fb-4290-a8ed-69c07128a7e7

📥 Commits

Reviewing files that changed from the base of the PR and between 549fd20 and 19a287a.

📒 Files selected for processing (1)
  • .github/workflows/workbench-functional-smoke.yml
📜 Review details
🧰 Additional context used
🪛 zizmor (1.25.2)
.github/workflows/workbench-functional-smoke.yml

[warning] 41-44: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)


[error] 149-149: code injection via template expansion (template-injection): may expand into attacker-controllable code

(template-injection)


[info] 150-150: code injection via template expansion (template-injection): may expand into attacker-controllable code

(template-injection)


[info] 169-169: code injection via template expansion (template-injection): may expand into attacker-controllable code

(template-injection)


[info] 170-170: code injection via template expansion (template-injection): may expand into attacker-controllable code

(template-injection)


[error] 42-42: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)


[error] 56-56: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)


[error] 61-61: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)


[error] 66-66: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)


[error] 71-71: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)


[error] 83-83: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)


[error] 175-175: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)

Comment thread .github/workflows/workbench-functional-smoke.yml
Comment thread .github/workflows/workbench-functional-smoke.yml Outdated
Comment thread .github/workflows/workbench-functional-smoke.yml

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/workbench-functional-smoke.yml:
- Around line 63-67: The Setup bun step in the workbench-functional-smoke.yml
workflow uses a floating version parameter (bun-version: latest) which causes
non-deterministic builds despite the action itself being SHA-pinned. Replace the
latest version value with a specific Bun version number to ensure reproducible
builds and avoid unexpected breakage from upstream Bun releases.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 5e0b217b-19cc-44fa-bcf8-e113039f7333

📥 Commits

Reviewing files that changed from the base of the PR and between 19a287a and 0ff26f9.

📒 Files selected for processing (1)
  • .github/workflows/workbench-functional-smoke.yml
📜 Review details
⏰ Context from checks skipped due to timeout. (6)
  • GitHub Check: Build Test (windows-arm64)
  • GitHub Check: Build Test (windows-x64)
  • GitHub Check: Build Test (macos-arm64)
  • GitHub Check: Build Test (macos-x64)
  • GitHub Check: Unit Tests (windows-2022)
  • GitHub Check: Build Test (linux)
🔇 Additional comments (1)
.github/workflows/workbench-functional-smoke.yml (1)

28-32: LGTM!

Also applies to: 42-45, 121-123, 154-158, 175-178, 185-191

Comment thread .github/workflows/workbench-functional-smoke.yml
@100yenadmin
100yenadmin merged commit b908359 into main Jun 22, 2026
14 checks passed
@100yenadmin
100yenadmin deleted the codex/workbench-functional-smoke-main-20260622 branch June 22, 2026 15:32
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.

P0: Add fast Workbench functional smoke lane before release builds

1 participant