Skip to content

ci: add Rust checks and executable size gates#4

Merged
koba-e964 merged 4 commits into
mainfrom
codex/auto-check-executable-sizes
Jul 5, 2026
Merged

ci: add Rust checks and executable size gates#4
koba-e964 merged 4 commits into
mainfrom
codex/auto-check-executable-sizes

Conversation

@koba-e964

@koba-e964 koba-e964 commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • add Rust CI for formatting, clippy, and tests
  • run CI on pull requests, pushes to main, weekly schedule, and manual workflow_dispatch
  • add release executable-size gates for Linux, macOS, and Windows
  • update auto-check-executable-sizes task progress and notes

Triggers

  • Pull requests
  • Pushes to main
  • Weekly schedule: Monday 00:00 UTC
  • Manual dispatch: workflow_dispatch

Size thresholds

Based on GitHub Actions run 28735183007:

  • Linux: measured 768480 bytes, threshold 850000 bytes
  • macOS: measured 676032 bytes, threshold 750000 bytes
  • Windows: measured 476672 bytes, threshold 550000 bytes

Validation

  • cargo fmt --check
  • cargo clippy --locked --all-targets -- -D warnings
  • cargo test --locked
  • cargo build --release --locked
  • local release executable size: 676032 bytes
  • progress validation command
  • extracted size lines from GitHub Actions run 28735183007

Note: actionlint was not installed locally.

Why:
- Executable size matters for this project and should be checked automatically on pull requests.
- The repository also needs baseline Rust CI coverage before main progresses through PRs.

What:
- Add a GitHub Actions CI workflow for cargo fmt, clippy, and tests.
- Add Linux, macOS, and Windows release executable-size checks with platform-specific byte thresholds.
- Update progress tracking and task notes for auto-check-executable-sizes.

Impact:
- Pull requests and pushes to main now run Rust CI and size gates.
- Local release binary size is 676032 bytes, below the Linux threshold of 900000.
- Verified with cargo fmt --check, cargo clippy --locked --all-targets -- -D warnings, cargo test --locked, cargo build --release --locked, and the progress validation command.
- actionlint was not available locally.

Prompt:
- Now go on to auto-check-executable-sizes.
- Yes, but I want general CI checks for Rust too.
@koba-e964 koba-e964 added this to the v0.2.0 milestone Jul 5, 2026
koba-e964 added 3 commits July 5, 2026 14:29
Why:
- Workflow dependencies should use the latest compatible stable action tags.
- actions/checkout v7 is available and should be used instead of the older v4 tag.

What:
- Update CI jobs to use actions/checkout@v7.
- Make progress validation require checkout v7.
- Update task notes to record the latest-action requirement.

Impact:
- CI behavior stays the same while using the current checkout action.
- No code or dependency changes; release executable size remains 676032 bytes.
- Verified actions/checkout v7 via git ls-remote tags.
- Verified with progress validation and git diff --check.

Prompt:
- action/checkout has v7, but you ignore the instructions and stick to using v4.
Why:
- GitHub Actions run 28735183007 reported actual executable sizes for all target platforms.
- The previous thresholds assumed Windows would be largest, but the run showed Windows is smallest.

What:
- Set Linux threshold to 850000 based on measured size 768480.
- Set macOS threshold to 750000 based on measured size 676032.
- Set Windows threshold to 550000 based on measured size 476672.
- Update progress validation and task notes to document the observed-size basis.

Impact:
- Size gates now reflect real CI runner output with modest headroom.
- No code or dependency changes; local release executable size remains 676032 bytes.
- Verified with progress validation and git diff --check.

Prompt:
- windows exe is the smallest, you better reflect these on the thresholds.
Why:
- CI should run periodically without waiting for code changes.
- The workflow should also be runnable on demand from GitHub Actions.

What:
- Add weekly Monday 00:00 UTC schedule trigger.
- Add GitHub Actions manual workflow_dispatch trigger.
- Update progress validation and task notes to require both triggers.

Impact:
- CI runs on pull requests, pushes to main, weekly schedule, and manual dispatch.
- No code or dependency changes; local release executable size remains 676032 bytes.
- Verified with progress validation and git diff --check.
- actionlint was not available locally.

Prompt:
- I want ci (i) periodically run (once per week) and (ii) run on MY discretion (dispatch_workflow).
@koba-e964
koba-e964 merged commit 8f6f9fe into main Jul 5, 2026
4 checks passed
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