Skip to content

ci: use stock github-hosted runners instead of warpdotdev SKUs#155

Merged
BunsDev merged 2 commits into
mainfrom
fix/ci-stock-github-runners
May 27, 2026
Merged

ci: use stock github-hosted runners instead of warpdotdev SKUs#155
BunsDev merged 2 commits into
mainfrom
fix/ci-stock-github-runners

Conversation

@BunsDev

@BunsDev BunsDev commented May 26, 2026

Copy link
Copy Markdown
Member

Summary

CI on this fork has never reached a real outcome — 0 of the last 200 Warp CI runs completed with success/failure/neutral; everything is cancelled or queued.

Root cause: the workflow inherits four runner labels from upstream Warp that aren't provisioned at the OpenCoven org level, so jobs requesting them queue indefinitely.

Label What it is Why it stalls here
namespace-profile-mac-ci Namespace.so managed-runner profile App not installed / profile not registered
ubuntu-latest-large GitHub "larger runner" SKU Larger-runner config not enabled for org
windows-latest-large GitHub "larger runner" SKU Same

This PR switches them to macos-latest, ubuntu-latest, windows-latest. Slower than the larger SKUs but they're free and they actually execute.

Test plan

  • CI on this PR itself uses the new labels and at least starts running (not stuck queued).
  • If jobs fail on stock runners (e.g. disk-space / memory), reassess; otherwise this becomes the new normal.

The workflow inherited four runner labels from upstream Warp that
aren't provisioned in the OpenCoven org:

  - namespace-profile-mac-ci  (Namespace.so managed runner profile)
  - ubuntu-latest-large       (org-level "larger runner" SKU)
  - windows-latest-large      (org-level "larger runner" SKU)

Jobs requesting any of these labels queued indefinitely — zero of
the last 200 Warp CI runs in this fork reached a real success/
failure outcome. Switch to the free shared pool (macos-latest,
ubuntu-latest, windows-latest) so CI actually executes. Slower
but functional.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 26, 2026 23:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes CI runs stalling indefinitely in this fork by replacing upstream Warp-specific runner labels (Namespace.so profile and “-large” SKUs) with standard GitHub-hosted runner labels that are available in the OpenCoven org.

Changes:

  • Switch macOS jobs from namespace-profile-mac-ci to macos-latest.
  • Switch Linux/Windows jobs from ubuntu-latest-large / windows-latest-large to ubuntu-latest / windows-latest.
  • Update inline workflow comments to document why the fallback is needed on this fork.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/ci.yml
Comment on lines 83 to 100
- name: Determine macOS runner type
id: mac_runner_type
run: |
RUNNER_TYPE='["namespace-profile-mac-ci"]'
# Stock GitHub-hosted macOS runner. Upstream Warp uses a Namespace.so
# profile (namespace-profile-mac-ci) that isn't provisioned in the
# OpenCoven org, so we fall back to the free shared pool here.
RUNNER_TYPE='["macos-latest"]'
echo "value=$RUNNER_TYPE" >> $GITHUB_OUTPUT

- name: Determine wasm runner type
id: wasm_runner_type
run: |
# Use a larger (16 core, 64GB ram) runner on Linux to speed up execution time.
# https://github.com/warpdotdev/warp-internal/settings/actions/runners
RUNNER_TYPE='["ubuntu-latest-large"]'
# Stock GitHub-hosted Linux runner. Upstream Warp uses
# ubuntu-latest-large (16-core/64GB) provisioned at the warpdotdev org
# level; OpenCoven doesn't have larger runners enabled, so we fall
# back to the free shared pool. Slower but actually executes.
RUNNER_TYPE='["ubuntu-latest"]'
echo "value=$RUNNER_TYPE" >> $GITHUB_OUTPUT
Stock GitHub-hosted runners (2-core Linux, 4-core Windows) are
roughly 6× slower than ubuntu-latest-large/windows-latest-large.
On PR #155 both Linux and Windows test jobs were cancelled at
the 25m ceiling before compilation finished. 90m leaves headroom
on cold caches.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@BunsDev BunsDev merged commit 596128c into main May 27, 2026
16 of 26 checks passed
BunsDev added a commit that referenced this pull request May 27, 2026
main carries three unformatted files inherited from feature commits that
landed while heavy CI jobs (Formatting + Clippy) were stuck queueing on
unprovisioned warpdotdev runner labels. Now that PR #155 switches to
stock GitHub runners, those jobs actually execute and fail the fmt
check, blocking every PR.

Apply `cargo fmt` to the three files cargo flagged:

  - app/src/browser/browser_view.rs            (Layer A + B)
  - app/src/pane_group/pane/browser_pane.rs    (Layer A + B)
  - app/src/settings_view/import_theme_modal.rs (theme import)

No behavioral changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
BunsDev added a commit that referenced this pull request May 27, 2026
Now that PR #155 made the heavy CI jobs actually execute (stock GitHub
runners instead of unprovisioned warpdotdev SKUs), the clippy half of
the Formatting + Clippy job surfaces 40+ preexisting `-D warnings`
violations on main. This commit lands the mechanical / cheap ones:

- `items_after_test_module`: move test mod to end of file in
  workspace/view.rs and settings_view/main_page.rs.
- `disallowed_types`: swap `std::process::Command` for the
  Windows-friendly `command::blocking::Command` wrapper inside
  util/git_tests.rs (1) and util/worktree_tests.rs (5).
- `dead_code` in scaffolding-only browser modules (downloads.rs,
  popup_policy.rs): allow at module level. Both modules are
  consumed only by browser/webview_host.rs's in-progress popup +
  download wiring; deleting them would tear out the follow-up
  work. Module-level allow keeps the call graph intact until the
  wry handlers land.

No behavioral changes. Remaining clippy fallout (mostly more
dead_code in browser + cli_chat scaffolding plus a handful of
one-off lints) tracked in follow-up commits.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
BunsDev added a commit that referenced this pull request May 27, 2026
Round 2 of the heavy-CI fallout. With #155 making jobs actually run,
clippy on Linux flagged 30+ more violations. Split between dead_code
allows on in-progress scaffolding and one-off lint fixes:

Browser pane (in-progress wry wiring, currently macOS-only):
- webview_host.rs: gate `FindResultsMessage` and `popup_policy::*`
  imports to target_os = "macos" so non-macOS builds don't pull them
  in just to fail dead_code; add struct-level + enum-level
  `#[allow(dead_code)]` to `NativeBrowserWebView` and
  `NativeWebViewEvent` since their fields/variants are constructed
  only by macOS handlers.
- browser_model.rs: allow pinned/favicon accessors + mutators (tab
  strip UI scaffolding).
- find.rs: allow `FindResultsMessage` (deserialized only inside the
  macOS-gated IPC handler).
- browser_view.rs: allow `too_many_arguments` on the two render
  helpers; drop a useless `.into()` on `chip_text_color`.

CLI chat (Phase 5/6 scaffolding):
- cli_chat/mod.rs: tag each `pub mod` declaration with
  `#[allow(dead_code)]` since the layers compile but no caller
  binds them yet.
- empty_state.rs: allow `enum_variant_names` (all "No…" prefixes
  are intentional UX strings, not naming churn).
- model_picker.rs: drop `&` on a `&&ChatModel` arg.
- store.rs: replace `|row| row_to_conversation(row)` closure with
  the function pointer (`redundant_closure`).
- store_schema.rs: rewrite the migrations loop to use
  `iter().enumerate().skip(...)` instead of indexing
  (`needless_range_loop`).

Cross-cutting one-offs:
- claude_transcript.rs: drop a stray blank line between the doc and
  `validated_stem`.
- coven_brand.rs: allow `OPENCOVEN_MUTED` (kept for follow-up UI use).
- server_api.rs: allow `AccessTokenRefreshed::token` field on all
  platforms (was already wasm-only).
- settings/import/config.rs: allow `large_enum_variant` on
  `ThemeType` (cold path, one allocation per import).
- terminal/view/pane_impl.rs: collapse identical `if/else` returning
  the same string; rename the parameter to `_` and document the
  follow-up that distinguishes ambient vs regular labels.
- themes/tweakcn_import.rs: drop a `format!("{}", selector)` that's
  literally the identity, and factor the heavy fn-pointer type into
  a `UiTokenSetter` alias to satisfy `type_complexity`.

No behavioural changes. Remaining: the `disallowed_type
std::process::Command` errors landed in commit 3315e06; this commit
covers the lib lints.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@BunsDev BunsDev deleted the fix/ci-stock-github-runners branch May 30, 2026 09:48
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