Skip to content

ci: run performance validation nightly and increase benchmark iteration count#554

Merged
rjmurillo merged 19 commits intomainfrom
feature/issue-553
Jul 19, 2025
Merged

ci: run performance validation nightly and increase benchmark iteration count#554
rjmurillo merged 19 commits intomainfrom
feature/issue-553

Conversation

@rjmurillo
Copy link
Copy Markdown
Owner

@rjmurillo rjmurillo commented Jul 19, 2025

This PR addresses issue #553 by redesigning the CI performance validation workflow:

  • Moves performance validation to a nightly scheduled job on main (no longer runs on every PR).
  • Increases BenchmarkDotNet iteration count to 15 for statistically meaningful results.
  • Updates build/scripts/perf/RunPerfTests.ps1 to use the new iteration count.

This change will reduce CI cost and latency, and provide more actionable performance data.

Evidence:

  • Workflow and script changes are included in this PR.
  • Please see CI logs for validation after merge.

Related to #553.

Summary by CodeRabbit

  • New Features

    • Introduced a nightly performance validation job covering multiple operating systems.
    • Added a composite action to automate .NET setup, restore, and build steps.
    • Implemented a workflow to enforce semantic pull request titles.
  • Improvements

    • Consolidated build steps in the workflow for easier maintenance.
    • Increased the number of performance test invocations for more robust benchmarking.
    • Updated scheduled workflow to run nightly instead of weekly.

Copilot AI review requested due to automatic review settings July 19, 2025 18:13
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Jul 19, 2025

Caution

Review failed

The pull request is closed.

📝 Walkthrough

"""

Walkthrough

A new GitHub composite action for setup, restore, and build was added. The main workflow now uses this action for both build and a new nightly performance validation job. The performance script was updated to increase benchmark iteration count. The workflow schedule was changed to nightly, and performance validation runs only on the main branch. A new semantic PR title check workflow was also added.

Changes

File(s) Change Summary
.github/actions/setup-restore-build/action.yml Introduced a composite GitHub Action to setup .NET environment, restore NuGet packages, and build the solution.
.github/workflows/main.yml Replaced build steps with composite action, added nightly performance job with OS matrix, changed schedule to nightly, and cleaned coverage upload step.
build/scripts/perf/RunPerfTests.ps1 Increased benchmark invocation count from 1 to 15; adjusted warmupCount argument spacing.
.github/workflows/semantic-pr-check.yml Added new workflow to validate PR titles using semantic conventions on PR open/edit/synchronize events.

Sequence Diagram(s)

sequenceDiagram
    participant GitHub Actions
    participant Composite Action
    participant Dotnet CLI
    participant Performance Script

    GitHub Actions->>Composite Action: Run setup-restore-build
    Composite Action->>Dotnet CLI: Setup .NET (global.json)
    Composite Action->>Dotnet CLI: Restore NuGet packages
    Composite Action->>Dotnet CLI: Build solution (Release, deterministic)

    GitHub Actions->>Performance Script: Run RunPerfTests.ps1 (nightly, main branch)
    Performance Script->>Dotnet CLI: Execute benchmarks (15 invocations)
    Performance Script-->>GitHub Actions: Upload performance artifacts
Loading

Possibly related issues

Possibly related PRs

Suggested reviewers

  • MattKotsenas
    """

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 479b6e5 and fa85571.

📒 Files selected for processing (3)
  • .github/actions/setup-restore-build/action.yml (1 hunks)
  • .github/workflows/main.yml (5 hunks)
  • .github/workflows/semantic-pr-check.yml (1 hunks)

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@rjmurillo rjmurillo added github_actions Pull requests that update GitHub Actions code releasable build feature labels Jul 19, 2025
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 redesigns the CI performance validation workflow to reduce costs and improve data quality by moving performance tests from every PR to nightly scheduled runs. The change increases BenchmarkDotNet iteration count from 1 to 15 for more statistically meaningful results and simplifies the OS matrix to run only on Linux ARM for performance validation.

Key changes:

  • Separates performance validation into a dedicated nightly job that only runs on the main branch
  • Increases benchmark iteration count from 1 to 15 in the PowerShell script
  • Removes Windows from performance validation OS matrix, keeping only Linux ARM

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
build/scripts/perf/RunPerfTests.ps1 Updates BenchmarkDotNet invocation count from 1 to 15 iterations
.github/workflows/main.yml Separates performance validation into nightly job and removes multi-OS runs
Comments suppressed due to low confidence (1)

.github/workflows/main.yml:25

  • [nitpick] The step name should be 'Restore dependencies' or 'Restore packages' to match the conventional naming pattern used elsewhere in the workflow and be more descriptive than 'NuGet Restore'.
  build:

Comment thread .github/workflows/main.yml
cursor[bot]

This comment was marked as outdated.

…m and ubuntu-24.04-arm for cross-platform coverage
cursor[bot]

This comment was marked as outdated.

@codacy-production
Copy link
Copy Markdown

codacy-production bot commented Jul 19, 2025

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
+0.00% (target: -1.00%) (target: 95.00%)
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (c99b9d9) 1703 1533 90.02%
Head commit (fa85571) 1703 (+0) 1533 (+0) 90.02% (+0.00%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#554) 0 0 ∅ (not applicable)

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings    Change summary preferences

cursor[bot]

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
.github/workflows/main.yml (1)

16-16: Clarify timezone in cron schedule comment.

The cron schedule comment should specify the timezone for clarity.

-    - cron: '0 3 * * *' # Nightly run for performance validation
+    - cron: '0 3 * * *' # Nightly run for performance validation at 3:00 AM UTC
📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6d14bd1 and f718940.

📒 Files selected for processing (3)
  • .github/actions/setup-restore-build/action.yml (1 hunks)
  • .github/workflows/main.yml (5 hunks)
  • build/scripts/perf/RunPerfTests.ps1 (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*

Instructions used from:

Sources:
📄 CodeRabbit Inference Engine

  • .github/copilot-instructions.md
🧠 Learnings (4)
📓 Common learnings
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Summarize all changes in the PR description and cite relevant lines from modified files for clarity.
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-approve-and-auto-merge.yml:8-8
Timestamp: 2025-01-22T00:47:24.622Z
Learning: For the moq.analyzers repository, ARM64 runner migration can proceed without staged rollout as there are minimal dependencies, with policy configurations to be adjusted post-merge.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-pr.yml:13-13
Timestamp: 2025-01-17T21:45:05.188Z
Learning: As of January 2025, GitHub-hosted ARM64 runners should use the syntax `ubuntu-24.04-arm` in GitHub Actions workflow files, as documented in the GitHub changelog.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/release.yml:24-24
Timestamp: 2025-01-17T21:44:35.686Z
Learning: As of January 2025, GitHub Actions supports ARM64 runners in public repositories (public preview). The runner specification format is `ubuntu-24.04-arm` for ARM64-based Ubuntu runners.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When making changes, follow the workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues if any → Run/Update Tests → Fix test failures if any → Update Docs → Commit & PR.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-auto-approve.yml:9-9
Timestamp: 2025-01-17T21:43:46.997Z
Learning: As of January 2025, GitHub Actions supports ARM64 runners in public preview. The runner label format is `ubuntu-24.04-arm` for ARM64 Ubuntu runners. This is available for free in public repositories.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: When making changes, follow this workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues → Run/Update Tests → Update Docs → Commit & PR.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to {tests/**/*.cs,docs/rules/**/*.md} : Update or add xUnit tests and documentation under docs/rules/ when analyzers change.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-auto-approve.yml:9-9
Timestamp: 2025-01-17T21:44:17.410Z
Learning: GitHub Actions now supports ARM64 runners (as of January 2025) with labels like `ubuntu-24.04-arm`. These runners are available for free in public repositories during the public preview period.
build/scripts/perf/RunPerfTests.ps1 (4)
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Run all unit tests: dotnet test --settings ./build/targets/tests/test.runsettings.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
.github/actions/setup-restore-build/action.yml (5)
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to **/*.{cs,csproj} : Run dotnet format before building or testing. Style settings come from .editorconfig.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Run all unit tests: dotnet test --settings ./build/targets/tests/test.runsettings.
.github/workflows/main.yml (19)
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-pr.yml:13-13
Timestamp: 2025-01-17T21:45:05.188Z
Learning: As of January 2025, GitHub-hosted ARM64 runners should use the syntax `ubuntu-24.04-arm` in GitHub Actions workflow files, as documented in the GitHub changelog.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-issues.yml:14-14
Timestamp: 2025-01-17T21:44:41.600Z
Learning: As of January 2025, GitHub Actions ARM64 runners should use the syntax `ubuntu-24.04-arm` for the `runs-on` field, not the array syntax with separate OS and architecture labels.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When making changes, follow the workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues if any → Run/Update Tests → Fix test failures if any → Update Docs → Commit & PR.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: When making changes, follow this workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues → Run/Update Tests → Update Docs → Commit & PR.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-auto-approve.yml:9-9
Timestamp: 2025-01-17T21:44:17.410Z
Learning: GitHub Actions now supports ARM64 runners (as of January 2025) with labels like `ubuntu-24.04-arm`. These runners are available for free in public repositories during the public preview period.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-auto-approve.yml:9-9
Timestamp: 2025-01-17T21:43:46.997Z
Learning: As of January 2025, GitHub Actions supports ARM64 runners in public preview. The runner label format is `ubuntu-24.04-arm` for ARM64 Ubuntu runners. This is available for free in public repositories.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/release.yml:24-24
Timestamp: 2025-01-17T21:44:35.686Z
Learning: As of January 2025, GitHub Actions supports ARM64 runners in public repositories (public preview). The runner specification format is `ubuntu-24.04-arm` for ARM64-based Ubuntu runners.
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-approve-and-auto-merge.yml:8-8
Timestamp: 2025-01-22T00:47:24.622Z
Learning: For the moq.analyzers repository, ARM64 runner migration can proceed without staged rollout as there are minimal dependencies, with policy configurations to be adjusted post-merge.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Run all unit tests: dotnet test --settings ./build/targets/tests/test.runsettings.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to **/*.{cs,csproj} : Run dotnet format before building or testing. Style settings come from .editorconfig.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .cursor/rules/codacy.mdc:0-0
Timestamp: 2025-07-19T08:09:35.137Z
Learning: Do not run `codacy_cli_analyze` looking for changes in code coverage
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .cursor/rules/codacy.mdc:0-0
Timestamp: 2025-07-19T08:09:35.137Z
Learning: If the Codacy CLI is not installed, just run the `codacy_cli_analyze` tool from Codacy's MCP Server
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: After any dependency change, run Codacy analysis with 'tool: trivy' and resolve vulnerabilities before continuing.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: After any dependency change, run Codacy analysis with tool: trivy and resolve vulnerabilities before continuing.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: After any file edit, immediately run Codacy analysis for the edited file and resolve all reported issues before proceeding.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: After any file edit, immediately run Codacy analysis for the edited file and resolve all reported issues before proceeding.
🪛 YAMLlint (1.37.1)
.github/workflows/main.yml

[warning] 16-16: too few spaces before comment: expected 2

(comments)


[error] 38-38: wrong indentation: expected 6 but found 4

(indentation)


[error] 118-118: wrong indentation: expected 6 but found 4

(indentation)

🪛 actionlint (1.7.7)
.github/workflows/main.yml

113-113: label "windows-11-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file

(runner-label)

🔇 Additional comments (5)
.github/actions/setup-restore-build/action.yml (2)

1-16: Excellent consolidation of common CI steps.

The composite action effectively centralizes setup, restore, and build steps with appropriate configurations for deterministic builds and diagnostics.


14-16: Add shell specification for cross-platform compatibility.

The run steps should specify the shell to ensure consistent behavior across different operating systems in the matrix.

    - name: NuGet Restore
      run: dotnet restore
+     shell: bash
    - name: Build
      run: dotnet build --no-restore --configuration Release /p:Deterministic=true /p:UseSharedCompilation=false /p:BuildInParallel=false /nodeReuse:false /bl:./artifacts/logs/release/build.release.binlog
+     shell: bash
⛔ Skipped due to learnings
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-issues.yml:14-14
Timestamp: 2025-01-17T21:44:41.600Z
Learning: As of January 2025, GitHub Actions ARM64 runners should use the syntax `ubuntu-24.04-arm` for the `runs-on` field, not the array syntax with separate OS and architecture labels.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-pr.yml:13-13
Timestamp: 2025-01-17T21:45:05.188Z
Learning: As of January 2025, GitHub-hosted ARM64 runners should use the syntax `ubuntu-24.04-arm` in GitHub Actions workflow files, as documented in the GitHub changelog.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to **/*.{cs,csproj} : Run dotnet format before building or testing. Style settings come from .editorconfig.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Run all unit tests: dotnet test --settings ./build/targets/tests/test.runsettings.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Build with warnings as errors: dotnet build /p:PedanticMode=true.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Build with warnings as errors using 'dotnet build /p:PedanticMode=true'.
build/scripts/perf/RunPerfTests.ps1 (1)

25-25: Improved benchmark reliability with increased iterations.

The change from --invocationCount 1 to --invocationCount 15 aligns perfectly with the PR objectives to achieve statistically meaningful performance results. The spacing normalization is also a good cleanup.

.github/workflows/main.yml (2)

16-16: Excellent workflow improvements for performance validation.

The changes successfully implement the PR objectives:

  • Nightly scheduling reduces CI costs while maintaining quality
  • Composite action usage improves maintainability
  • New performance job is well-structured with proper conditionals and artifact handling

Also applies to: 38-39, 108-135


113-113: No changes needed for Windows ARM64 runner label

The windows-11-arm label is the official and supported GitHub-hosted Windows ARM64 runner for public repositories in 2025. Keeping:

os: [windows-11-arm, ubuntu-24.04-arm]

is correct; no updates are required.

Likely an incorrect or invalid review comment.

Comment thread .github/workflows/main.yml
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
.github/workflows/main.yml (1)

16-16: [Duplicate] Cron schedule timezone clarification needed.

The cron schedule comment could be more specific about the timezone for clarity.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6d14bd1 and f718940.

📒 Files selected for processing (3)
  • .github/actions/setup-restore-build/action.yml (1 hunks)
  • .github/workflows/main.yml (5 hunks)
  • build/scripts/perf/RunPerfTests.ps1 (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*

Instructions used from:

Sources:
📄 CodeRabbit Inference Engine

  • .github/copilot-instructions.md
🧠 Learnings (4)
📓 Common learnings
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-approve-and-auto-merge.yml:8-8
Timestamp: 2025-01-22T00:47:24.622Z
Learning: For the moq.analyzers repository, ARM64 runner migration can proceed without staged rollout as there are minimal dependencies, with policy configurations to be adjusted post-merge.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Summarize all changes in the PR description and cite relevant lines from modified files for clarity.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Every pull request must include evidence of running code formatting, building with warnings as errors, and running all unit tests (console log/text or screenshots) in the PR description.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-pr.yml:13-13
Timestamp: 2025-01-17T21:45:05.188Z
Learning: As of January 2025, GitHub-hosted ARM64 runners should use the syntax `ubuntu-24.04-arm` in GitHub Actions workflow files, as documented in the GitHub changelog.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/release.yml:24-24
Timestamp: 2025-01-17T21:44:35.686Z
Learning: As of January 2025, GitHub Actions supports ARM64 runners in public repositories (public preview). The runner specification format is `ubuntu-24.04-arm` for ARM64-based Ubuntu runners.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When making changes, follow the workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues if any → Run/Update Tests → Fix test failures if any → Update Docs → Commit & PR.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-issues.yml:14-14
Timestamp: 2025-01-17T21:44:41.600Z
Learning: As of January 2025, GitHub Actions ARM64 runners should use the syntax `ubuntu-24.04-arm` for the `runs-on` field, not the array syntax with separate OS and architecture labels.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-auto-approve.yml:9-9
Timestamp: 2025-01-17T21:43:46.997Z
Learning: As of January 2025, GitHub Actions supports ARM64 runners in public preview. The runner label format is `ubuntu-24.04-arm` for ARM64 Ubuntu runners. This is available for free in public repositories.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: When making changes, follow this workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues → Run/Update Tests → Update Docs → Commit & PR.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-auto-approve.yml:9-9
Timestamp: 2025-01-17T21:44:17.410Z
Learning: GitHub Actions now supports ARM64 runners (as of January 2025) with labels like `ubuntu-24.04-arm`. These runners are available for free in public repositories during the public preview period.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
build/scripts/perf/RunPerfTests.ps1 (4)
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Run all unit tests: dotnet test --settings ./build/targets/tests/test.runsettings.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
.github/actions/setup-restore-build/action.yml (5)
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to **/*.{cs,csproj} : Run dotnet format before building or testing. Style settings come from .editorconfig.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Run all unit tests: dotnet test --settings ./build/targets/tests/test.runsettings.
.github/workflows/main.yml (19)
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-pr.yml:13-13
Timestamp: 2025-01-17T21:45:05.188Z
Learning: As of January 2025, GitHub-hosted ARM64 runners should use the syntax `ubuntu-24.04-arm` in GitHub Actions workflow files, as documented in the GitHub changelog.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-issues.yml:14-14
Timestamp: 2025-01-17T21:44:41.600Z
Learning: As of January 2025, GitHub Actions ARM64 runners should use the syntax `ubuntu-24.04-arm` for the `runs-on` field, not the array syntax with separate OS and architecture labels.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When making changes, follow the workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues if any → Run/Update Tests → Fix test failures if any → Update Docs → Commit & PR.
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-approve-and-auto-merge.yml:8-8
Timestamp: 2025-01-22T00:47:24.622Z
Learning: For the moq.analyzers repository, ARM64 runner migration can proceed without staged rollout as there are minimal dependencies, with policy configurations to be adjusted post-merge.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: When making changes, follow this workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues → Run/Update Tests → Update Docs → Commit & PR.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-auto-approve.yml:9-9
Timestamp: 2025-01-17T21:44:17.410Z
Learning: GitHub Actions now supports ARM64 runners (as of January 2025) with labels like `ubuntu-24.04-arm`. These runners are available for free in public repositories during the public preview period.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-auto-approve.yml:9-9
Timestamp: 2025-01-17T21:43:46.997Z
Learning: As of January 2025, GitHub Actions supports ARM64 runners in public preview. The runner label format is `ubuntu-24.04-arm` for ARM64 Ubuntu runners. This is available for free in public repositories.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/release.yml:24-24
Timestamp: 2025-01-17T21:44:35.686Z
Learning: As of January 2025, GitHub Actions supports ARM64 runners in public repositories (public preview). The runner specification format is `ubuntu-24.04-arm` for ARM64-based Ubuntu runners.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Run all unit tests: dotnet test --settings ./build/targets/tests/test.runsettings.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to **/*.{cs,csproj} : Run dotnet format before building or testing. Style settings come from .editorconfig.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .cursor/rules/codacy.mdc:0-0
Timestamp: 2025-07-19T08:09:35.137Z
Learning: Do not run `codacy_cli_analyze` looking for changes in code coverage
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .cursor/rules/codacy.mdc:0-0
Timestamp: 2025-07-19T08:09:35.137Z
Learning: If the Codacy CLI is not installed, just run the `codacy_cli_analyze` tool from Codacy's MCP Server
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: After any dependency change, run Codacy analysis with 'tool: trivy' and resolve vulnerabilities before continuing.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: After any dependency change, run Codacy analysis with tool: trivy and resolve vulnerabilities before continuing.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: After any file edit, immediately run Codacy analysis for the edited file and resolve all reported issues before proceeding.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: After any file edit, immediately run Codacy analysis for the edited file and resolve all reported issues before proceeding.
🪛 GitHub Actions: Main build
.github/actions/setup-restore-build/action.yml

[error] 1-1: Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under the action directory. Did you forget to run actions/checkout before running your local action?

🪛 YAMLlint (1.37.1)
.github/workflows/main.yml

[warning] 16-16: too few spaces before comment: expected 2

(comments)


[error] 38-38: wrong indentation: expected 6 but found 4

(indentation)


[error] 118-118: wrong indentation: expected 6 but found 4

(indentation)

🪛 actionlint (1.7.7)
.github/workflows/main.yml

113-113: label "windows-11-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file

(runner-label)

🔇 Additional comments (6)
.github/actions/setup-restore-build/action.yml (2)

1-12: Good consolidation of common CI steps.

The composite action effectively consolidates the checkout, .NET setup, and restore steps that are repeated across multiple jobs. The use of fetch-depth: 0 and global-json-file configuration is appropriate for build reproducibility.


14-16: Critical: Add shell specification for run commands in composite action.

Composite actions require explicit shell specification for run steps. This is likely causing the pipeline failure where the action file cannot be found/loaded.

Apply this diff to fix the shell specifications:

     - name: NuGet Restore
       run: dotnet restore
+      shell: bash
     - name: Build
       run: dotnet build --no-restore --configuration Release /p:Deterministic=true /p:UseSharedCompilation=false /p:BuildInParallel=false /nodeReuse:false /bl:./artifacts/logs/release/build.release.binlog
+      shell: bash
⛔ Skipped due to learnings
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to **/* : All formatting and linting issues flagged by bots or CI must be resolved before requesting review or merging.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Run all unit tests: dotnet test --settings ./build/targets/tests/test.runsettings.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Build with warnings as errors: dotnet build /p:PedanticMode=true.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Build with warnings as errors using 'dotnet build /p:PedanticMode=true'.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to **/*.{cs,csproj} : Run dotnet format before building or testing. Style settings come from .editorconfig.
build/scripts/perf/RunPerfTests.ps1 (1)

25-25: Good increase in benchmark iterations for statistical reliability.

Increasing --invocationCount from 1 to 15 aligns with the PR objective to achieve statistically meaningful performance results. The combination of 2 warmup iterations and 15 measured iterations provides a good balance between CI cost and result reliability.

.github/workflows/main.yml (3)

108-135: Excellent addition of dedicated performance validation job.

The new performance job effectively implements the PR objectives:

  • Runs only on scheduled nightly builds on main branch
  • Uses the same OS matrix for consistency
  • Includes proper artifact upload with conditional execution
  • Good documentation of BenchmarkDotNet settings in comments

27-27: Good use of fail-fast: false for performance validation.

Setting fail-fast: false ensures that performance validation runs on all OS variants even if one fails, providing comprehensive performance data across platforms.


113-113: No action needed for the Windows ARM64 runner label

The windows-11-arm label is officially supported by GitHub Actions for Windows 11 ARM64 hosted runners in public repositories as of July 2025. Your existing configuration is correct:

os: [windows-11-arm, ubuntu-24.04-arm]

Comment thread .github/workflows/main.yml
cursor[bot]

This comment was marked as outdated.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

♻️ Duplicate comments (1)
.github/workflows/main.yml (1)

16-16: Fix comment spacing and clarify timezone.

The cron schedule comment needs proper spacing and timezone clarification as previously mentioned.

-    - cron: '0 3 * * *' # Nightly run for performance validation
+    - cron: '0 3 * * *'  # Nightly run for performance validation at 3:00 AM UTC
📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6d14bd1 and f718940.

📒 Files selected for processing (3)
  • .github/actions/setup-restore-build/action.yml (1 hunks)
  • .github/workflows/main.yml (5 hunks)
  • build/scripts/perf/RunPerfTests.ps1 (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*

Instructions used from:

Sources:
📄 CodeRabbit Inference Engine

  • .github/copilot-instructions.md
🧠 Learnings (4)
📓 Common learnings
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Summarize all changes in the PR description and cite relevant lines from modified files for clarity.
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-approve-and-auto-merge.yml:8-8
Timestamp: 2025-01-22T00:47:24.622Z
Learning: For the moq.analyzers repository, ARM64 runner migration can proceed without staged rollout as there are minimal dependencies, with policy configurations to be adjusted post-merge.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-pr.yml:13-13
Timestamp: 2025-01-17T21:45:05.188Z
Learning: As of January 2025, GitHub-hosted ARM64 runners should use the syntax `ubuntu-24.04-arm` in GitHub Actions workflow files, as documented in the GitHub changelog.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When making changes, follow the workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues if any → Run/Update Tests → Fix test failures if any → Update Docs → Commit & PR.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: When making changes, follow this workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues → Run/Update Tests → Update Docs → Commit & PR.
build/scripts/perf/RunPerfTests.ps1 (4)
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Run all unit tests: dotnet test --settings ./build/targets/tests/test.runsettings.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
.github/actions/setup-restore-build/action.yml (5)
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to **/*.{cs,csproj} : Run dotnet format before building or testing. Style settings come from .editorconfig.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Run all unit tests: dotnet test --settings ./build/targets/tests/test.runsettings.
.github/workflows/main.yml (19)
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-pr.yml:13-13
Timestamp: 2025-01-17T21:45:05.188Z
Learning: As of January 2025, GitHub-hosted ARM64 runners should use the syntax `ubuntu-24.04-arm` in GitHub Actions workflow files, as documented in the GitHub changelog.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-issues.yml:14-14
Timestamp: 2025-01-17T21:44:41.600Z
Learning: As of January 2025, GitHub Actions ARM64 runners should use the syntax `ubuntu-24.04-arm` for the `runs-on` field, not the array syntax with separate OS and architecture labels.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When making changes, follow the workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues if any → Run/Update Tests → Fix test failures if any → Update Docs → Commit & PR.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: When making changes, follow this workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues → Run/Update Tests → Update Docs → Commit & PR.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-auto-approve.yml:9-9
Timestamp: 2025-01-17T21:44:17.410Z
Learning: GitHub Actions now supports ARM64 runners (as of January 2025) with labels like `ubuntu-24.04-arm`. These runners are available for free in public repositories during the public preview period.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-auto-approve.yml:9-9
Timestamp: 2025-01-17T21:43:46.997Z
Learning: As of January 2025, GitHub Actions supports ARM64 runners in public preview. The runner label format is `ubuntu-24.04-arm` for ARM64 Ubuntu runners. This is available for free in public repositories.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/release.yml:24-24
Timestamp: 2025-01-17T21:44:35.686Z
Learning: As of January 2025, GitHub Actions supports ARM64 runners in public repositories (public preview). The runner specification format is `ubuntu-24.04-arm` for ARM64-based Ubuntu runners.
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-approve-and-auto-merge.yml:8-8
Timestamp: 2025-01-22T00:47:24.622Z
Learning: For the moq.analyzers repository, ARM64 runner migration can proceed without staged rollout as there are minimal dependencies, with policy configurations to be adjusted post-merge.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Run all unit tests: dotnet test --settings ./build/targets/tests/test.runsettings.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to **/*.{cs,csproj} : Run dotnet format before building or testing. Style settings come from .editorconfig.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .cursor/rules/codacy.mdc:0-0
Timestamp: 2025-07-19T08:09:35.137Z
Learning: Do not run `codacy_cli_analyze` looking for changes in code coverage
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .cursor/rules/codacy.mdc:0-0
Timestamp: 2025-07-19T08:09:35.137Z
Learning: If the Codacy CLI is not installed, just run the `codacy_cli_analyze` tool from Codacy's MCP Server
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: After any dependency change, run Codacy analysis with 'tool: trivy' and resolve vulnerabilities before continuing.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: After any dependency change, run Codacy analysis with tool: trivy and resolve vulnerabilities before continuing.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: After any file edit, immediately run Codacy analysis for the edited file and resolve all reported issues before proceeding.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: After any file edit, immediately run Codacy analysis for the edited file and resolve all reported issues before proceeding.
🪛 YAMLlint (1.37.1)
.github/workflows/main.yml

[warning] 16-16: too few spaces before comment: expected 2

(comments)


[error] 38-38: wrong indentation: expected 6 but found 4

(indentation)


[error] 118-118: wrong indentation: expected 6 but found 4

(indentation)

🪛 actionlint (1.7.7)
.github/workflows/main.yml

113-113: label "windows-11-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file

(runner-label)

🔇 Additional comments (7)
.github/actions/setup-restore-build/action.yml (3)

1-4: LGTM - Well-structured composite action.

The action metadata is clear and the composite action approach effectively consolidates common CI steps.


6-8: LGTM - Checkout configuration is appropriate.

Using fetch-depth: 0 is correct for deterministic builds that may need git history for version calculation.


9-12: LGTM - Excellent use of global.json for version consistency.

Using global-json-file ensures consistent .NET versions across all environments.

build/scripts/perf/RunPerfTests.ps1 (1)

25-25: LGTM - Benchmark iteration count increase aligns with PR objectives.

Increasing invocationCount from 1 to 15 will provide more statistically meaningful performance results as intended. The warmupCount of 2 paired with 15 invocations strikes a good balance between statistical reliability and CI execution time.

.github/workflows/main.yml (3)

27-27: LGTM - Consistent fail-fast configuration.

Setting fail-fast: false explicitly is good for consistency, even though it's the default for matrices.


86-86: LGTM - Minor formatting cleanup.

The formatting cleanup is good for consistency.


121-134: LGTM - Well-documented performance validation.

Excellent documentation of the BenchmarkDotNet settings and clear rationale for the parameter choices. The artifact upload configuration is also properly set up.

Comment thread .github/actions/setup-restore-build/action.yml
Comment thread .github/workflows/main.yml
Comment thread .github/workflows/main.yml
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🔭 Outside diff range comments (1)
.github/workflows/main.yml (1)

86-92: Optional: pin Codacy action to a commit SHA

For supply-chain safety, consider pinning codacy-coverage-reporter-action to a commit SHA instead of a mutable tag.

♻️ Duplicate comments (2)
.github/workflows/main.yml (2)

27-30: windows-11-arm runner label is still invalid & contradicts PR description

actionlint shows the label is unknown, and the PR summary says performance validation should run only on Linux ARM.
Drop the Windows entry (both here and in the performance job) or switch to a supported label such as windows-2022 if Windows coverage is really required.

-        os: [windows-11-arm, ubuntu-24.04-arm]
+        os: [ubuntu-24.04-arm]

Likely an incorrect or invalid review comment.


108-119: Same two issues repeated in performance job

• Invalid windows-11-arm label
• Step indentation + wrong local-action path

Apply the same fixes suggested for the build job:

-        os: [windows-11-arm, ubuntu-24.04-arm]
+        os: [ubuntu-24.04-arm]

-    - name: Setup, Restore, and Build Solution
-      uses: ./.github/actions/setup-restore-build/action.yml
+      - name: Setup, Restore, and Build Solution
+        uses: ./.github/actions/setup-restore-build
📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f718940 and 479b6e5.

📒 Files selected for processing (1)
  • .github/workflows/main.yml (5 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Summarize all changes in the PR description and cite relevant lines from modified files for clarity.
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-approve-and-auto-merge.yml:8-8
Timestamp: 2025-01-22T00:47:24.622Z
Learning: For the moq.analyzers repository, ARM64 runner migration can proceed without staged rollout as there are minimal dependencies, with policy configurations to be adjusted post-merge.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-pr.yml:13-13
Timestamp: 2025-01-17T21:45:05.188Z
Learning: As of January 2025, GitHub-hosted ARM64 runners should use the syntax `ubuntu-24.04-arm` in GitHub Actions workflow files, as documented in the GitHub changelog.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When making changes, follow the workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues if any → Run/Update Tests → Fix test failures if any → Update Docs → Commit & PR.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: When making changes, follow this workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues → Run/Update Tests → Update Docs → Commit & PR.
.github/workflows/main.yml (24)
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-pr.yml:13-13
Timestamp: 2025-01-17T21:45:05.188Z
Learning: As of January 2025, GitHub-hosted ARM64 runners should use the syntax `ubuntu-24.04-arm` in GitHub Actions workflow files, as documented in the GitHub changelog.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-issues.yml:14-14
Timestamp: 2025-01-17T21:44:41.600Z
Learning: As of January 2025, GitHub Actions ARM64 runners should use the syntax `ubuntu-24.04-arm` for the `runs-on` field, not the array syntax with separate OS and architecture labels.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to **/* : All formatting and linting issues flagged by bots or CI must be resolved before requesting review or merging.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When making changes, follow the workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues if any → Run/Update Tests → Fix test failures if any → Update Docs → Commit & PR.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: After any dependency change, run Codacy analysis with 'tool: trivy' and resolve vulnerabilities before continuing.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Address all feedback from automated bots (e.g., Codeclimate, formatting/linting bots) as you would human reviewers; resolve all formatting and linting issues flagged by bots or CI before requesting review or merging.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: When making changes, follow this workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues → Run/Update Tests → Update Docs → Commit & PR.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .cursor/rules/codacy.mdc:0-0
Timestamp: 2025-07-19T08:09:35.137Z
Learning: If any issues are found in the new edits by `codacy_cli_analyze`, propose and apply fixes for them
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: After any dependency change, run Codacy analysis with tool: trivy and resolve vulnerabilities before continuing.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: After any file edit, immediately run Codacy analysis for the edited file and resolve all reported issues before proceeding.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: After any file edit, immediately run Codacy analysis for the edited file and resolve all reported issues before proceeding.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Address all feedback from automated bots (e.g., Codeclimate, formatting/linting bots) as you would human reviewers.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to {README.md,docs/rules/README.md} : Update README.md and docs/rules/README.md if workflows or rules change.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-auto-approve.yml:9-9
Timestamp: 2025-01-17T21:44:17.410Z
Learning: GitHub Actions now supports ARM64 runners (as of January 2025) with labels like `ubuntu-24.04-arm`. These runners are available for free in public repositories during the public preview period.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-auto-approve.yml:9-9
Timestamp: 2025-01-17T21:43:46.997Z
Learning: As of January 2025, GitHub Actions supports ARM64 runners in public preview. The runner label format is `ubuntu-24.04-arm` for ARM64 Ubuntu runners. This is available for free in public repositories.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/release.yml:24-24
Timestamp: 2025-01-17T21:44:35.686Z
Learning: As of January 2025, GitHub Actions supports ARM64 runners in public repositories (public preview). The runner specification format is `ubuntu-24.04-arm` for ARM64-based Ubuntu runners.
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-approve-and-auto-merge.yml:8-8
Timestamp: 2025-01-22T00:47:24.622Z
Learning: For the moq.analyzers repository, ARM64 runner migration can proceed without staged rollout as there are minimal dependencies, with policy configurations to be adjusted post-merge.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Run all unit tests: dotnet test --settings ./build/targets/tests/test.runsettings.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to **/*.{cs,csproj} : Run dotnet format before building or testing. Style settings come from .editorconfig.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .cursor/rules/codacy.mdc:0-0
Timestamp: 2025-07-19T08:09:35.137Z
Learning: Do not run `codacy_cli_analyze` looking for changes in code coverage
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .cursor/rules/codacy.mdc:0-0
Timestamp: 2025-07-19T08:09:35.137Z
Learning: If the Codacy CLI is not installed, just run the `codacy_cli_analyze` tool from Codacy's MCP Server
🪛 YAMLlint (1.37.1)
.github/workflows/main.yml

[warning] 16-16: too few spaces before comment: expected 2

(comments)


[error] 38-38: wrong indentation: expected 6 but found 4

(indentation)


[error] 118-118: wrong indentation: expected 6 but found 4

(indentation)

🪛 actionlint (1.7.7)
.github/workflows/main.yml

113-113: label "windows-11-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file

(runner-label)

Comment thread .github/workflows/main.yml
Comment thread .github/workflows/main.yml
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

♻️ Duplicate comments (1)
.github/workflows/main.yml (1)

108-119: Unsupported runner label and repeated indentation / action-path problems

windows-11-arm is not an officially supported GitHub-hosted runner label (see action-lint error).
At the same time, the same indentation and uses: path issues noted in the build job recur here.

-      matrix:
-        os: [windows-11-arm, ubuntu-24.04-arm]
+      matrix:
+        os: [ubuntu-24.04-arm]

-    steps:
-    - name: Setup, Restore, and Build Solution
-      uses: ./.github/actions/setup-restore-build/action.yml
+    steps:
+      - name: Setup, Restore, and Build Solution
+        uses: ./.github/actions/setup-restore-build
📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f718940 and 479b6e5.

📒 Files selected for processing (1)
  • .github/workflows/main.yml (5 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Summarize all changes in the PR description and cite relevant lines from modified files for clarity.
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-approve-and-auto-merge.yml:8-8
Timestamp: 2025-01-22T00:47:24.622Z
Learning: For the moq.analyzers repository, ARM64 runner migration can proceed without staged rollout as there are minimal dependencies, with policy configurations to be adjusted post-merge.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-pr.yml:13-13
Timestamp: 2025-01-17T21:45:05.188Z
Learning: As of January 2025, GitHub-hosted ARM64 runners should use the syntax `ubuntu-24.04-arm` in GitHub Actions workflow files, as documented in the GitHub changelog.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When making changes, follow the workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues if any → Run/Update Tests → Fix test failures if any → Update Docs → Commit & PR.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: When making changes, follow this workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues → Run/Update Tests → Update Docs → Commit & PR.
.github/workflows/main.yml (24)
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-pr.yml:13-13
Timestamp: 2025-01-17T21:45:05.188Z
Learning: As of January 2025, GitHub-hosted ARM64 runners should use the syntax `ubuntu-24.04-arm` in GitHub Actions workflow files, as documented in the GitHub changelog.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Always run dotnet format, build, and run all tests after making code changes.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/label-issues.yml:14-14
Timestamp: 2025-01-17T21:44:41.600Z
Learning: As of January 2025, GitHub Actions ARM64 runners should use the syntax `ubuntu-24.04-arm` for the `runs-on` field, not the array syntax with separate OS and architecture labels.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to **/* : All formatting and linting issues flagged by bots or CI must be resolved before requesting review or merging.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: When making changes, follow the workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues if any → Run/Update Tests → Fix test failures if any → Update Docs → Commit & PR.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: After any dependency change, run Codacy analysis with 'tool: trivy' and resolve vulnerabilities before continuing.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.110Z
Learning: Address all feedback from automated bots (e.g., Codeclimate, formatting/linting bots) as you would human reviewers; resolve all formatting and linting issues flagged by bots or CI before requesting review or merging.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: When making changes, follow this workflow: Edit/Add Code or Test → Run codacy_cli_analyze → Fix issues → Run/Update Tests → Update Docs → Commit & PR.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .cursor/rules/codacy.mdc:0-0
Timestamp: 2025-07-19T08:09:35.137Z
Learning: If any issues are found in the new edits by `codacy_cli_analyze`, propose and apply fixes for them
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: After any dependency change, run Codacy analysis with tool: trivy and resolve vulnerabilities before continuing.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: After any file edit, immediately run Codacy analysis for the edited file and resolve all reported issues before proceeding.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: After any file edit, immediately run Codacy analysis for the edited file and resolve all reported issues before proceeding.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Address all feedback from automated bots (e.g., Codeclimate, formatting/linting bots) as you would human reviewers.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to {README.md,docs/rules/README.md} : Update README.md and docs/rules/README.md if workflows or rules change.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-auto-approve.yml:9-9
Timestamp: 2025-01-17T21:44:17.410Z
Learning: GitHub Actions now supports ARM64 runners (as of January 2025) with labels like `ubuntu-24.04-arm`. These runners are available for free in public repositories during the public preview period.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-auto-approve.yml:9-9
Timestamp: 2025-01-17T21:43:46.997Z
Learning: As of January 2025, GitHub Actions supports ARM64 runners in public preview. The runner label format is `ubuntu-24.04-arm` for ARM64 Ubuntu runners. This is available for free in public repositories.
Learnt from: MattKotsenas
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/release.yml:24-24
Timestamp: 2025-01-17T21:44:35.686Z
Learning: As of January 2025, GitHub Actions supports ARM64 runners in public repositories (public preview). The runner specification format is `ubuntu-24.04-arm` for ARM64-based Ubuntu runners.
Learnt from: rjmurillo
PR: rjmurillo/moq.analyzers#325
File: .github/workflows/dependabot-approve-and-auto-merge.yml:8-8
Timestamp: 2025-01-22T00:47:24.622Z
Learning: For the moq.analyzers repository, ARM64 runner migration can proceed without staged rollout as there are minimal dependencies, with policy configurations to be adjusted post-merge.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Run all unit tests: dotnet test --settings ./build/targets/tests/test.runsettings.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.038Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-06-25T12:42:47.111Z
Learning: Re-run dotnet format, build, and tests after resolving feedback or merge conflicts.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-07-19T08:09:21.037Z
Learning: Applies to **/*.{cs,csproj} : Run dotnet format before building or testing. Style settings come from .editorconfig.
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .cursor/rules/codacy.mdc:0-0
Timestamp: 2025-07-19T08:09:35.137Z
Learning: Do not run `codacy_cli_analyze` looking for changes in code coverage
Learnt from: CR
PR: rjmurillo/moq.analyzers#0
File: .cursor/rules/codacy.mdc:0-0
Timestamp: 2025-07-19T08:09:35.137Z
Learning: If the Codacy CLI is not installed, just run the `codacy_cli_analyze` tool from Codacy's MCP Server
🪛 YAMLlint (1.37.1)
.github/workflows/main.yml

[warning] 16-16: too few spaces before comment: expected 2

(comments)


[error] 38-38: wrong indentation: expected 6 but found 4

(indentation)


[error] 118-118: wrong indentation: expected 6 but found 4

(indentation)

🪛 actionlint (1.7.7)
.github/workflows/main.yml

113-113: label "windows-11-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file

(runner-label)

🔇 Additional comments (3)
.github/workflows/main.yml (3)

27-27: Matrix tweak LGTM

Explicitly disabling fail-fast on the strategy is a sound choice for multi-OS builds.


86-92: Coverage reporter step is correctly scoped and version-pinned

Nice job gating the step behind Linux-only execution and pinning to a fixed major/minor tag.


123-127: Comment mentions BenchmarkDotNet flags that are never passed

The explanatory comment lists --warmupCount 2 and --invocationCount 15, but the command does not forward them to the script. If PerfCore.ps1 does not set these defaults internally, the intended change isn’t realised.

-      run: ${{ github.workspace }}/build/scripts/perf/PerfCore.ps1 -v diag -diff -ci
+      run: ${{ github.workspace }}/build/scripts/perf/PerfCore.ps1 -v diag -diff -ci --warmupCount 2 --invocationCount 15

Please verify whether the script already applies these parameters; if not, pass them explicitly to avoid a silent regression.

Comment thread .github/workflows/main.yml
Comment thread .github/workflows/main.yml
cursor[bot]

This comment was marked as outdated.

cursor[bot]

This comment was marked as outdated.

@rjmurillo rjmurillo force-pushed the feature/issue-553 branch from 99b4b80 to 69fd163 Compare July 19, 2025 19:03
@rjmurillo rjmurillo force-pushed the feature/issue-553 branch from b6e0169 to eac1439 Compare July 19, 2025 19:17
Introduce a new GitHub Action for Dependency Review to scan for known-vulnerable package versions in pull requests. Update the PowerShell workflow with enhanced permissions and add PSScriptAnalyzer for script validation. Implement a new "Semantic PR Check" workflow for title validation. Refactor C# methods to enhance detection of Moq's Raises methods using symbol-based analysis, and add unit tests to ensure accurate identification of valid and invalid patterns.
Add checkout step using actions/checkout@v4 with fetch-depth 0
to action.yml and main.yml. Introduce "Setup, Restore, and
Build Solution" step for consistent .NET build process across
jobs. Include performance validation step using PowerShell.
@rjmurillo rjmurillo merged commit b823cbc into main Jul 19, 2025
22 checks passed
@rjmurillo rjmurillo deleted the feature/issue-553 branch July 19, 2025 19:53
@rjmurillo rjmurillo added this to the vNext milestone Jul 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build feature github_actions Pull requests that update GitHub Actions code releasable

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants