Skip to content

Conversation

sporicle
Copy link
Contributor

@sporicle sporicle commented Oct 13, 2025

Summary by CodeRabbit

  • Chores
    • Added an automated end-to-end testing workflow for Solana/Anchor example projects. It runs on pushes, pull requests to main, and manual triggers; provisions local and ephemeral validators, configures necessary toolchains and CLIs, deploys example projects to a local test network, runs their test suites with readiness checks, and includes placeholders to add more examples.

@coderabbitai
Copy link

coderabbitai bot commented Oct 13, 2025

Walkthrough

Adds a GitHub Actions workflow "Test Examples" that provisions Rust 1.82, installs Solana CLI and Anchor via AVM (avm 0.31.1), installs MagicBlock Ephemeral Validator, starts local Solana and MagicBlock validators, builds/deploys anchor-counter to localnet, and runs its tests. Triggers: push/PR to main and manual dispatch.

Changes

Cohort / File(s) Summary
CI workflow for Solana/Anchor E2E tests
.github/workflows/test.yml
Adds a workflow that: checks out the repo; sets up Rust 1.82; installs Solana CLI and configures solana; installs AVM and Anchor (avm 0.31.1); installs MagicBlock Ephemeral Validator (npm global); configures keypair and local cluster URL; starts solana-test-validator (with clones & upgradeable programs) and waits for RPC; starts MagicBlock ephemeral validator with increased resource limits and waits for RPC; builds and deploys anchor-counter to localnet and runs its tests; includes commented blocks for additional example projects.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor GitHub
  participant Runner as GitHub Runner
  participant Solana as solana-test-validator
  participant MEV as MagicBlock Ephemeral Validator
  participant Anchor as Anchor / anchor-counter

  GitHub->>Runner: Trigger workflow (push/PR/manual)
  Runner->>Runner: Checkout repo, setup Rust 1.82
  Runner->>Runner: Install Solana CLI, configure solana
  Runner->>Runner: Install AVM & Anchor (avm 0.31.1)
  Runner->>Runner: Install MagicBlock Ephemeral Validator (npm)

  Runner->>Solana: Start solana-test-validator (clones & upgradeable programs)
  Solana-->>Runner: RPC ready

  Runner->>MEV: Start MagicBlock ephemeral validator (point to local RPC)
  MEV-->>Runner: RPC ready

  Runner->>Anchor: Build & deploy anchor-counter to localnet
  Runner->>Anchor: Run tests (env configured)
  Anchor-->>Runner: Test results
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Pre-merge checks and finishing touches

✅ 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 succinctly describes the addition of a CI/CD workflow and aligns directly with the pull request’s main change of introducing a new GitHub Actions pipeline. It is concise, clear, and free of vague or extraneous wording.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ci/cd

📜 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 4d0c0e3 and 040cfa3.

📒 Files selected for processing (1)
  • .github/workflows/test.yml (1 hunks)
🧰 Additional context used
🪛 actionlint (1.7.8)
.github/workflows/test.yml

18-18: the runner of "actions-rs/toolchain@v1" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

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

[warning] 3-3: truthy value should be one of [false, true]

(truthy)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: test-examples

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

Copy link

@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

📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e8606cf and 4152a57.

📒 Files selected for processing (1)
  • .github/workflows/test.yml (1 hunks)
🧰 Additional context used
🪛 actionlint (1.7.7)
.github/workflows/test.yml

18-18: the runner of "actions-rs/toolchain@v1" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

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

[warning] 3-3: truthy value should be one of [false, true]

(truthy)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: test

Comment on lines +3 to +8
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Tighten trigger syntax to satisfy yamllint

yamllint flags the current trigger block (on, [ main ]). Quote the key and drop the extra spaces to clear the errors:

-on:
-  push:
-    branches: [ main ]
-  pull_request:
-    branches: [ main ]
+'on':
+  push:
+    branches: [main]
+  pull_request:
+    branches: [main]
🧰 Tools
🪛 YAMLlint (1.37.1)

[warning] 3-3: truthy value should be one of [false, true]

(truthy)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)

🤖 Prompt for AI Agents
In .github/workflows/test.yml around lines 3 to 8, tighten the GitHub Actions
trigger syntax to satisfy yamllint by removing the extra spaces in the branches
array and quoting keys/strings: replace occurrences like branches: [ main ] with
branches: ["main"] (no spaces inside the brackets) and ensure any YAML keys or
string values flagged by yamllint are quoted as required (e.g., "on" or branch
names) so the trigger block is valid.

Comment on lines +17 to +22
- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
toolchain: '1.82'
override: true

Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Replace the deprecated Rust toolchain action

actions-rs/toolchain@v1 now targets the removed Node12 runtime, so the step fails before the workflow can install Rust. Switch to a maintained setup action. For example:

-    - name: Setup Rust
-      uses: actions-rs/toolchain@v1
-      with:
-        toolchain: '1.82'
-        override: true
+    - name: Setup Rust
+      uses: dtolnay/rust-toolchain@master
+      with:
+        toolchain: 1.82
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
toolchain: '1.82'
override: true
- name: Setup Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.82
🧰 Tools
🪛 actionlint (1.7.7)

18-18: the runner of "actions-rs/toolchain@v1" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

🤖 Prompt for AI Agents
In .github/workflows/test.yml around lines 17-22, the workflow uses the
deprecated actions-rs/toolchain@v1 (Node12 runtime) which fails; replace that
step with a maintained setup action such as dtolnay/setup-rust@v1 (or
actions-rs/toolchain@v2 if available) and set the rust-version input to '1.82'
(remove the Node12-specific override), e.g., swap the uses line to
dtolnay/setup-rust@v1 and provide rust-version: '1.82' so the workflow installs
Rust with a supported action.

Copy link

@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: 4

♻️ Duplicate comments (3)
.github/workflows/test.yml (3)

3-7: Quote "on" and tighten branches array spacing

Yamllint flags unquoted on and spaces inside brackets. Quote the key and remove extra spaces.

-on:
-  push:
-    branches: [ main ]
-  pull_request:
-    branches: [ main ]
+"on":
+  push:
+    branches: [main]
+  pull_request:
+    branches: [main]

17-21: Replace deprecated Rust toolchain action (Node12) with maintained one

actions-rs/toolchain@v1 fails on GitHub-hosted runners. Use dtolnay/rust-toolchain.

-    - name: Setup Rust
-      uses: actions-rs/toolchain@v1
-      with:
-        toolchain: '1.82'
-        override: true
+    - name: Setup Rust
+      uses: dtolnay/rust-toolchain@master
+      with:
+        toolchain: 1.82

89-93: Use websocket scheme for WS_ENDPOINT

WS_ENDPOINT must be ws://. Using http:// will break websocket clients.

-        WS_ENDPOINT=http://localhost:8900 \
+        WS_ENDPOINT=ws://localhost:8900 \

Note: mirror this change in the commented example blocks below for consistency when enabling them.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 152af10 and dd35f14.

📒 Files selected for processing (1)
  • .github/workflows/test.yml (1 hunks)
🧰 Additional context used
🪛 actionlint (1.7.7)
.github/workflows/test.yml

18-18: the runner of "actions-rs/toolchain@v1" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

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

[warning] 3-3: truthy value should be one of [false, true]

(truthy)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: test-examples

Comment on lines +35 to +38
- name: Install MagicBlock Ephemeral Validator
run: |
npm install -g @magicblock-labs/ephemeral-validator@latest

Copy link

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

Pin Ephemeral Validator npm version for reproducibility

Installing @latest is brittle. Pin a known-good version to avoid sudden CI breaks.

-        npm install -g @magicblock-labs/ephemeral-validator@latest
+        npm install -g @magicblock-labs/ephemeral-validator@<pinned-version>

If you share the target version, I can update the diff.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Install MagicBlock Ephemeral Validator
run: |
npm install -g @magicblock-labs/ephemeral-validator@latest
- name: Install MagicBlock Ephemeral Validator
run: |
npm install -g @magicblock-labs/ephemeral-validator@<pinned-version>
🤖 Prompt for AI Agents
.github/workflows/test.yml around lines 35 to 38: the workflow installs
@magicblock-labs/ephemeral-validator using @latest which is brittle; change the
install step to pin a specific known-good semver (e.g., @1.2.3) or reference a
repository variable/GITHUB_REF for the approved release, updating the npm
install -g invocation to use that explicit version string (and if you want, add
a comment or workflow input to make future version updates explicit).

Comment on lines 65 to 68
- name: Increase file descriptor limit
run: |
ulimit -n 1000000

Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

ulimit change is scoped to this step; it won’t affect later steps

File descriptor limit resets per step. Move ulimit into the steps that start validators (before launching processes), and drop this standalone step.

-    - name: Increase file descriptor limit
-      run: |
-        ulimit -n 1000000
+    # removed separate ulimit step; applied in validator steps

Apply ulimit at the top of each start step:

     - name: Start Solana Test Validator
       run: |
+        ulimit -n 1000000
         solana-test-validator \
         ...
     - name: Start MagicBlock Ephemeral Validator
       run: |
+        ulimit -n 1000000
         RUST_LOG=info ephemeral-validator \
         ...
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Increase file descriptor limit
run: |
ulimit -n 1000000
# (removed standalone ulimit step; applying ulimit in each validator step)
- name: Start Solana Test Validator
run: |
ulimit -n 1000000
solana-test-validator \
--reset \
--limit-ledger-size \
# …other flags…
- name: Start MagicBlock Ephemeral Validator
run: |
ulimit -n 1000000
RUST_LOG=info ephemeral-validator \
--network localnet \
# …other flags…
🤖 Prompt for AI Agents
.github/workflows/test.yml lines 65-68: the workflow currently runs a standalone
step to set ulimit (ulimit -n 1000000), but ulimit is process/step-scoped and
will not persist to later steps; remove this standalone step and instead add the
ulimit command at the start of each step that launches validators or other
long-running processes (i.e., prepend `ulimit -n 1000000` as the first command
in those run blocks) so the increased file descriptor limit applies to the
processes started in those steps.

Copy link

@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 (5)
.github/workflows/test.yml (5)

3-8: Tighten triggers to satisfy yamllint.

Quote the on key and remove extra spaces inside bracket arrays.

-on:
-  push:
-    branches: [ main ]
-  pull_request:
-    branches: [ main ]
+'on':
+  push:
+    branches: [main]
+  pull_request:
+    branches: [main]

17-22: Replace deprecated Rust toolchain action.

actions-rs/toolchain@v1 targets Node12 and fails on GitHub Actions. Use a maintained action.

-    - name: Setup Rust
-      uses: actions-rs/toolchain@v1
-      with:
-        toolchain: '1.82'
-        override: true
+    - name: Setup Rust
+      uses: dtolnay/rust-toolchain@master
+      with:
+        toolchain: 1.82

35-38: Pin Ephemeral Validator npm version for reproducibility.

Avoid @latest to prevent surprise CI breaks.

-        npm install -g @magicblock-labs/ephemeral-validator@latest
+        npm install -g @magicblock-labs/ephemeral-validator@<pinned-version>

Share the target version and I’ll update the diff.


70-75: Remove contradictory remote source flags.

You pass both --remote-cluster development and localhost URLs. Keep one intent. If sourcing from local test validator, drop --remote-cluster.

           RUST_LOG=info ephemeral-validator \
             --accounts-lifecycle ephemeral \
-            --remote-cluster development \
             --remote-url http://127.0.0.1:8899 \
             --remote-ws-url ws://127.0.0.1:8900 \
             --rpc-port 7799 &

86-92: Use websocket scheme for WS_ENDPOINT.

Anchor/websocket clients require ws://, not http://.

-        WS_ENDPOINT=http://localhost:8900 \
+        WS_ENDPOINT=ws://localhost:8900 \
📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between dd35f14 and f64efba.

📒 Files selected for processing (1)
  • .github/workflows/test.yml (1 hunks)
🧰 Additional context used
🪛 actionlint (1.7.8)
.github/workflows/test.yml

63-63: could not parse as YAML: did not find expected key

(syntax-check)

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

[warning] 3-3: truthy value should be one of [false, true]

(truthy)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)


[error] 78-78: syntax error: expected , but found ''

(syntax)

Comment on lines +10 to +13
jobs:
test-examples:
runs-on: ubuntu-latest

Copy link

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

Optional: Add Cargo cache to speed builds.

Caching target/registry cuts CI time and bandwidth.

    steps:
      - uses: actions/checkout@v4

      - name: Cache cargo
        uses: actions/cache@v4
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            target
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
          restore-keys: |
            ${{ runner.os }}-cargo-
🤖 Prompt for AI Agents
In .github/workflows/test.yml around lines 10 to 13 the job currently lacks
Cargo caching which slows CI; add a cache step after the checkout that uses
actions/cache@v4 to cache ~/.cargo/registry, ~/.cargo/git and target, with a key
like ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} and a restore-keys
entry ${{ runner.os }}-cargo- so subsequent runs restore the registry/git crates
and target build artifacts to speed builds and reduce bandwidth.

Copy link

@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 (3)
.github/workflows/test.yml (3)

17-21: Replace the deprecated Rust toolchain action.

actions-rs/toolchain@v1 still runs on the retired Node12 runtime, so the step fails before Rust installs. Switch to a maintained setup action (e.g. dtolnay/rust-toolchain@master or actions/setup-rust@v1) and request toolchain 1.82 there.


71-76: Drop --remote-cluster when pointing to localhost.

You simultaneously pass --remote-cluster development and --remote-url http://127.0.0.1:8899. The cluster flag contradicts the localhost URLs and can cause the validator to target the wrong source. Remove the --remote-cluster argument (or swap the URLs to devnet if that was the intent) so the flags are consistent.


88-93: Use a websocket URL for WS_ENDPOINT.

Anchor expects a websocket endpoint here. http://localhost:8900 breaks subscription setup, causing the tests to fail. Change it to ws://localhost:8900.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f64efba and 487ad34.

📒 Files selected for processing (1)
  • .github/workflows/test.yml (1 hunks)
🧰 Additional context used
🪛 actionlint (1.7.8)
.github/workflows/test.yml

18-18: the runner of "actions-rs/toolchain@v1" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

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

[warning] 3-3: truthy value should be one of [false, true]

(truthy)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: test-examples

Copy link

@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

📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c91c584 and d84f041.

📒 Files selected for processing (1)
  • .github/workflows/test.yml (1 hunks)
🧰 Additional context used
🪛 actionlint (1.7.8)
.github/workflows/test.yml

18-18: the runner of "actions-rs/toolchain@v1" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

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

[warning] 3-3: truthy value should be one of [false, true]

(truthy)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: test-examples

Comment on lines 65 to 80
- name: Start MagicBlock Ephemeral Validator
run: |
# Magic voodoo to increase resource limits
sudo prlimit --pid $$ --nofile=1048576:1048576
sudo sysctl fs.inotify.max_user_instances=1280
sudo sysctl fs.inotify.max_user_watches=655360

RUST_LOG=info ephemeral-validator \
--accounts-lifecycle ephemeral \
--remote-cluster development \
--remote-url http://127.0.0.1:8899 \
--remote-ws-url ws://127.0.0.1:8900 \
--rpc-port 7799

# Wait for validator to be ready
timeout 20 bash -c 'until curl -s http://localhost:7799 >/dev/null 2>&1; do sleep 1; done'
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Background the MagicBlock validator or run it and its wait logic in one step.

ephemeral-validator runs in the foreground here. Because it never exits, the wait loop on Line 80 and all subsequent steps are never reached, causing the job to hang. Either background the process (and add cleanup) or launch/wait/test within a single step before the process exits.

🤖 Prompt for AI Agents
.github/workflows/test.yml around lines 65–80: the workflow starts
ephemeral-validator in the foreground so the step never completes and the
subsequent wait/steps are never executed; fix by starting the validator in the
background and managing its lifecycle in the same step: launch
ephemeral-validator in background, save its PID, run the existing readiness loop
(curl until ready), run any tests that require the validator, then kill the
background PID and wait for it to exit (or use a trap to ensure cleanup on
failure); alternatively, keep the validator in-foreground but move the readiness
check and any tests into the same step that runs the validator and exit that
step only after readiness and tests complete.

Copy link

@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: 4

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

3-7: Tighten trigger syntax to satisfy yamllint.

Quote the on key and remove the extra spaces inside the branch arrays so linting passes:

-'on':
-  push:
-    branches: [main]
-  pull_request:
-    branches: [main]
+on:
+  push:
+    branches: [main]
+  pull_request:
+    branches: [main]
📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 01cb458 and 4d0c0e3.

📒 Files selected for processing (1)
  • .github/workflows/test.yml (1 hunks)
🧰 Additional context used
🪛 actionlint (1.7.8)
.github/workflows/test.yml

18-18: the runner of "actions-rs/toolchain@v1" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

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

[warning] 3-3: truthy value should be one of [false, true]

(truthy)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 5-5: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)


[error] 7-7: too many spaces inside brackets

(brackets)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: test-examples

Comment on lines +17 to +21
- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
toolchain: '1.82'
override: true
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Replace the deprecated Rust setup action.

actions-rs/toolchain@v1 is stuck on the retired Node12 runtime, so this step fails before installing Rust. Switch to a maintained action (e.g., dtolnay/rust-toolchain@master with toolchain: 1.82) so the workflow can provision Rust successfully.

🧰 Tools
🪛 actionlint (1.7.8)

18-18: the runner of "actions-rs/toolchain@v1" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

🤖 Prompt for AI Agents
.github/workflows/test.yml around lines 17 to 21: the workflow uses the
deprecated actions-rs/toolchain@v1 which runs on a retired Node12 runtime and
fails; replace that step with a maintained action such as
dtolnay/rust-toolchain@master and set the input to toolchain: '1.82' (remove the
deprecated override flag), ensuring the step name and inputs match the new
action's expected keys so the workflow can provision Rust successfully.

Comment on lines +72 to +77
RUST_LOG=info ephemeral-validator \
--accounts-lifecycle ephemeral \
--remote-cluster development \
--remote-url http://127.0.0.1:8899 \
--remote-ws-url ws://127.0.0.1:8900 \
--rpc-port 7799 &
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Drop the contradictory --remote-cluster development flag.

You’re pointing ephemeral-validator at the local Solana endpoints while simultaneously declaring the source cluster as development. Those settings conflict and can lead to the validator syncing from the wrong source. Remove --remote-cluster development (or swap the URLs to devnet) so the configuration is coherent.

🤖 Prompt for AI Agents
.github/workflows/test.yml around lines 72 to 77: the ephemeral-validator
invocation includes a contradictory flag --remote-cluster development while
pointing at local URLs; remove the --remote-cluster development flag (or
alternatively replace the local URLs with devnet endpoints) so the command
either targets local endpoints only or consistently targets the development
cluster, ensuring configuration coherence.

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