Skip to content

ci: add manually-triggered Cross Platform Builds workflow#1233

Merged
stack72 merged 1 commit intomainfrom
worktree-breezy-bouncing-willow
Apr 28, 2026
Merged

ci: add manually-triggered Cross Platform Builds workflow#1233
stack72 merged 1 commit intomainfrom
worktree-breezy-bouncing-willow

Conversation

@stack72
Copy link
Copy Markdown
Contributor

@stack72 stack72 commented Apr 28, 2026

Summary

  • Adds .github/workflows/cross-platform-builds.yml, a manually-triggered workflow that runs the full pipeline (lint, check, test, compile) on windows-latest and macos-latest.
  • Triggered via workflow_dispatch only — does not run on PRs, pushes, or a schedule, so there's no CI noise on regular work.
  • First step in incremental Windows-support effort. The first run produces the failure inventory we'll work through; subsequent runs verify progress.

How to invoke

Via GitHub UI: Actions → Cross Platform Builds → Run workflow

Or CLI:

gh workflow run cross-platform-builds.yml

Why workflow_dispatch only?

Until Windows support exists, every triggered run will fail loudly. Wiring it to PRs or a schedule would mean red checks / red emails on every workday — alert fatigue, and the signal stops being useful. On-demand runs let us capture the failure list when we want it (now, and after each Windows-support PR) without polluting unrelated work.

Once Windows support is complete, a follow-up PR can flip the triggers to pull_request and remove this manual step.

Test plan

  • Open and merge PR.
  • From the Actions tab, manually trigger "Cross Platform Builds" against main.
  • Confirm both Cross Platform Build (windows-latest) and Cross Platform Build (macos-latest) jobs run independently (fail-fast: false keeps macOS running when Windows fails).
  • Capture the Windows failure list to inform PR 2.

🤖 Generated with Claude Code

Adds .github/workflows/cross-platform-builds.yml — a workflow_dispatch
workflow that runs lint, check, test, and compile on windows-latest
and macos-latest. The workflow has no automatic triggers, so it adds
no CI noise to PRs or main, and is invoked on demand via the GitHub
UI or `gh workflow run`.

This is the foundation for incremental Windows-support work: the first
run captures the failure inventory; subsequent runs verify that fixes
land cleanly on Windows. Once Windows support is complete, this
workflow's triggers can be expanded to include pull_request as a final
acceptance gate.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

Code Review

Blocking Issues

None.

Suggestions

None — this is a clean, minimal addition.

Details:

The workflow mirrors the existing ci.yml test job exactly — same actions (actions/checkout@v6, denoland/setup-deno@v2), same commands (deno lint, deno fmt --check, deno task check, deno task test, deno task compile), and appropriately minimal permissions (contents: read).

Checked:

  • CLAUDE.md conventions: No TypeScript changes, so no license headers, type checks, linting, or formatting concerns. The workflow commands match the established patterns.
  • DDD: Not applicable — no domain code changed.
  • Test coverage: Not applicable — no code requiring tests.
  • Security: workflow_dispatch with no inputs means no injection surface. No secrets used. Permissions are read-only. Third-party action pins match the existing CI convention.
  • Consistency: fail-fast: false is the right choice for an exploratory failure-inventory run across independent platforms.

LGTM.

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

CI Security Review

Critical / High

None.

Medium

  1. .github/workflows/cross-platform-builds.yml:19,22actions/checkout@v6 and denoland/setup-deno@v2 are pinned by tag rather than full commit SHA. A compromised tag could deliver malicious code. However, both are from trusted publishers (GitHub-owned / Deno official), and the existing ci.yml in this repo uses the same tag-only pinning for these actions, so this is consistent with current repo convention. Consider SHA-pinning as a future hardening pass across all workflows.

Low

None.

Verdict

PASS — This is a clean, minimal workflow. It is workflow_dispatch-only (no external trigger surface), uses job-level contents: read permissions (minimum necessary), interpolates no untrusted data, references no secrets, and invokes no LLMs. The tag-only action pins are a medium-severity note but are consistent with existing repo practice and use trusted publishers.

@stack72 stack72 merged commit 7bd1c27 into main Apr 28, 2026
11 checks passed
@stack72 stack72 deleted the worktree-breezy-bouncing-willow branch April 28, 2026 09:02
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