Skip to content

Comments

feat: add workflow for node execution#267

Open
cbermudez97 wants to merge 29 commits intomainfrom
feat/run-node-workflow
Open

feat: add workflow for node execution#267
cbermudez97 wants to merge 29 commits intomainfrom
feat/run-node-workflow

Conversation

@cbermudez97
Copy link
Contributor

No description provided.

@cbermudez97 cbermudez97 self-assigned this Sep 26, 2025
@AnkushinDaniil AnkushinDaniil force-pushed the feat/run-node-workflow branch from a964d51 to b5540b1 Compare October 1, 2025 12:41
cbermudez97 and others added 28 commits December 27, 2025 20:15
# Conflicts:
#	src/Nethermind.Arbitrum/Properties/configs/arbitrum-sepolia-archive.json
#	src/Nethermind.Arbitrum/Properties/configs/arbitrum-sepolia.json
Copy link

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 adds comprehensive infrastructure for executing Arbitrum nodes with automated workflow orchestration. The implementation includes configuration updates for block processing timeouts, block hash verification settings, and a complete CI/CD pipeline for deploying and managing custom nodes.

Key Changes:

  • Updated Arbitrum mainnet configurations with new block processing timeouts (60000ms) and block hash verification settings
  • Added GitHub Actions workflow for deploying custom nodes with configurable parameters (chain selection, timeout, SSH keys, firewall rules)
  • Implemented Python script for generating node deployment configurations with Docker Compose orchestration for Nethermind and Nitro services

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 15 comments.

Show a summary per file
File Description
src/Nethermind.Arbitrum/Properties/configs/arbitrum-mainnet.json Adds Arbitrum and VerifyBlockHash configuration sections with block processing timeout and verification settings
src/Nethermind.Arbitrum/Properties/configs/arbitrum-mainnet-archive.json Updates block processing timeout to 60000ms and adds VerifyBlockHash configuration
scripts/wait_for_workflow.sh Implements workflow monitoring script that waits for GitHub Actions workflows to trigger and complete
scripts/setup_script.sh.j2 Jinja2 template for node setup including Docker installation, registry authentication, and container orchestration
scripts/generate_custom_node_data.py Python script generating deployment configurations for Nethermind and Nitro nodes with environment-based configuration
.github/workflows/run-node.yml GitHub Actions workflow orchestrating node deployment with inputs for images, chain selection, and security settings
.editorconfig Adds Python-specific indentation settings (4 spaces)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

echo "Installing Docker..."
## Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The command options for apt-get install should include the -y flag for non-interactive installation, similar to lines 23 and 27. Without it, the installation may prompt for user confirmation and hang the script.

Suggested change
sudo apt-get install ca-certificates curl
sudo apt-get install -y ca-certificates curl

Copilot uses AI. Check for mistakes.
pushgateway_url: str = "",
seq_url: str = "",
seq_api_key: str = "",
# TODO: Add more flags options as needed
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The comment "TODO: Add more flags options as needed" suggests incomplete functionality. If this is intentional for future expansion, consider removing the TODO or creating a tracking issue for the additional flags that need to be implemented.

Suggested change
# TODO: Add more flags options as needed
# Additional Nethermind flag options can be added here if required in the future.

Copilot uses AI. Check for mistakes.

# Docker login
echo "Logging in to Docker registry..."
docker login {{ docker_registry.url }} -u "{{ docker_registry.username }}" -p "{{ docker_registry.password }}"
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

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

The docker login command uses the -p flag with {{ docker_registry.password }} directly on the command line, which exposes the registry password in the process list to any local user or monitoring system and can also surface in host-level telemetry. An attacker with local access could capture these credentials and use them to pull or push images or otherwise impersonate the registry account. Use a method that does not place the password in the command line (for example, passing it via standard input) so the secret is never visible in process arguments or logs.

Suggested change
docker login {{ docker_registry.url }} -u "{{ docker_registry.username }}" -p "{{ docker_registry.password }}"
printf '%s\n' '{{ docker_registry.password }}' | docker login {{ docker_registry.url }} -u "{{ docker_registry.username }}" --password-stdin

Copilot uses AI. Check for mistakes.
@github-actions
Copy link
Contributor

Code Coverage

Package Line Rate Branch Rate Health
Nethermind.Arbitrum 80% 57%
Summary 80% (8242 / 10270) 57% (1985 / 3483)

Minimum allowed line rate is 60%

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.

2 participants