Skip to content

Conversation

@AbianS
Copy link
Owner

@AbianS AbianS commented Jan 28, 2026

Summary by CodeRabbit

  • Infrastructure & CI/CD

    • Enhanced CI caching and parallelized test/build/lint/format workflow.
    • Added multi-architecture Docker builds and manifest publishing for amd64 and arm64.
    • Improved image tagging and per-runner caching for faster, platform-aware publishes.
  • New Scripts

    • Added a top-level CI script to run tests, builds, linting, and format checks via the package manager.
  • Runtime

    • Server image updated to run as non-root and expose the service on port 8080.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 28, 2026

Walkthrough

Adds sccache and pnpm caching to CI, refactors CI to run tasks via pnpm run ci, implements matrix-driven multi-arch Docker builds with separate manifest jobs, comments out panic = "abort" in server release profile, and updates server Dockerfile to copy the built binary, expose port 8080, and run as nonroot.

Changes

Cohort / File(s) Summary
CI workflow
.github/workflows/ci.yml
Adds sccache action and env vars (SCCACHE_GHA_ENABLED, RUSTC_WRAPPER), enables colored Rust output, adds pnpm caching and node-version: "latest", replaces previous steps with pnpm run ci (Turbo runs test/build/lint/format:check).
Docker publish workflows (multi-arch)
.github/workflows/docker-publish.yml
Splits and renames jobs into *-build and *-manifest, introduces matrix platforms (linux/amd64, linux/arm64), builds platform-specific images with platform-tag suffixes, adds per-runner cache scopes, and creates/pushes multi-arch manifests (versioned and latest).
Server Cargo config
apps/server/Cargo.toml
Comments out panic = "abort" in [profile.release] occurrences (disables explicit abort-on-panic setting).
Server Dockerfile
apps/server/Dockerfile
Removes dummy src after dependency compile, copies the built binary into final stage, exposes port 8080, switches to nonroot execution, and sets CMD to run the binary.
Server code small refactors
apps/server/src/auth/extractors.rs, apps/server/src/db/mod.rs, apps/server/src/digest/worker.rs, apps/server/src/routes/alerts.rs, apps/server/src/services/issue.rs, apps/server/src/services/notification/webhook.rs
Minor refactors/formatting: use split_once, condense async query formatting, add #[allow(clippy::too_many_arguments)] on two functions, replace manual clamp with clamp, change unwrap_or_else to unwrap_or for constant, and collapse some error-return formatting. No behavioral changes.
Package scripts
package.json
Adds ci script: turbo run test build lint format:check.

Sequence Diagram

sequenceDiagram
    participant GHA as GitHub Actions
    participant Detect as Version Detect
    participant Build as Docker Buildx (matrix)
    participant Registry as Docker Registry
    participant Manifest as Manifest Creator

    GHA->>Detect: detect-package (version)
    par Parallel platform builds
        GHA->>Build: docker-server-build (linux/amd64)
        GHA->>Build: docker-server-build (linux/arm64)
        GHA->>Build: docker-ui-build (linux/amd64)
        GHA->>Build: docker-ui-build (linux/arm64)
    end
    Build->>Registry: push platform-specific images (version-runner suffix)
    GHA->>Manifest: docker-server-manifest (create manifests including platform images)
    GHA->>Manifest: docker-ui-manifest (create manifests including platform images)
    Manifest->>Registry: push multi-arch manifests (versioned and latest)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: optimizing CI with sccache (seen in ci.yml) and multi-arch ARM runners (seen in docker-publish.yml).
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

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

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

- Consolidate CI tasks into single turbo command running test, build, lint, and format:check in parallel for faster feedback
- Add `ci` npm script to run all checks atomically
- Simplify Rust code patterns: use split_once() for parsing, clamp() for range limiting, unwrap_or() instead of unwrap_or_else()
- Suppress clippy::too_many_arguments warnings on functions with necessary complexity
- Minor formatting improvements for consistency
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