Skip to content

Conversation

@rtb-12
Copy link
Contributor

@rtb-12 rtb-12 commented Jan 8, 2026

[CI] Add Windows testing workflow for merod binary

Description

This PR adds a new GitHub Actions workflow to test that the merod binary compiles and runs correctly on Windows. The workflow builds the merod binary on Windows runners and verifies that nodes can be started using the native binary .

Test plan

Test steps:

  1. Build merod binary on Windows runner
  2. Download binary artifact
  3. Install merobox
  4. Run merobox run --count 2 --no-docker --binary-path <path> to verify nodes start successfully

Documentation update

No public documentation updates required.


Note

Introduces a Windows GitHub Actions workflow to build merod, build app artifacts, and run all Merobox app workflows with the native Windows binary, including retries and failure reporting.

  • New .github/workflows/merobox-workflows-windows.yml with triggers on push, pull_request to master, and workflow_dispatch; concurrency enabled
  • Jobs: build-apps (cache Rust deps, build apps, cache artifacts), build-merod (compile merod.exe, upload artifact), test (restore artifacts, verify DLL/runtime presence, set up Python and install merobox, run all apps/**/workflows/*.yml with retry logic, collect logs, upload artifacts)
  • PR failure reporting via a separate comment job that posts a summary of failed workflows

Written by Cursor Bugbot for commit ddc8c99. This will update automatically on new commits. Configure here.

foreach ($logFile in $logFiles) {
Write-Host "`n=== Log: $($logFile.FullName) ==="
Get-Content $logFile.FullName -Tail 50 -ErrorAction SilentlyContinue
}
Copy link

Choose a reason for hiding this comment

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

Log collection happens after nuke may delete logs

Medium Severity

The Run-Workflow function collects node logs after executing merobox nuke --force, which likely deletes the data directories containing the logs. The existing Linux workflow in merobox-workflows.yml correctly collects logs before running nuke. This means when a workflow fails on Windows, the diagnostic log output will be empty because the files were already deleted, making it harder to debug failures.

Fix in Cursor Fix in Web

foreach ($logFile in $logFiles) {
Write-Host "`n=== Log: $($logFile.FullName) ==="
Get-Content $logFile.FullName -Tail 50 -ErrorAction SilentlyContinue
}
Copy link

Choose a reason for hiding this comment

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

Log collection searches wrong directory after Pop-Location

Low Severity

The log collection uses a relative path "data" to search for log files, but this executes after Pop-Location returns to the repository root. Since merobox likely creates data directories inside each app directory (e.g., apps/some-app/data/), the search will not find logs in the repo root's data directory. The path should reference $appDir or use an absolute path that accounts for the directory change.

Fix in Cursor Fix in Web

@github-actions
Copy link

This pull request has been automatically marked as stale. If this pull request is still relevant, please leave any comment (for example, "bump"), and we'll keep it open. We are sorry that we haven't been able to prioritize reviewing it yet. Your contribution is very much appreciated.

@github-actions github-actions bot added the Stale label Jan 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants