Skip to content

#### Flow diagram for dynamic VM and blockchain test matrices in CI #70

@Dargon789

Description

@Dargon789

Reviewer's Guide

This PR consolidates and enhances CI workflows across GitHub Actions and CircleCI, introduces dynamic test matrices for VM and blockchain forks, refines code scanning and coverage settings, adds Dependabot support, and updates key project dependencies.

Flow diagram for dynamic VM and blockchain test matrices in CI

flowchart TD
  Start["Start VM Workflow"]
  MatrixCheck["Check for 'Test all hardforks' label"]
  ForkMatrix["Run tests for forks: Berlin, London, Paris, Shanghai, Cancun"]
  ExtendedForkMatrix["Run extended tests for all hardforks"]
  BlockchainMatrix["Run blockchain tests for forks: Berlin, London, Paris, Shanghai, Cancun"]
  BlockchainExtendedMatrix["Run extended blockchain tests for all hardforks and transitions"]
  End["End Workflow"]

  Start --> MatrixCheck
  MatrixCheck -- No label --> ForkMatrix
  MatrixCheck -- No label --> BlockchainMatrix
  MatrixCheck -- Label present --> ExtendedForkMatrix
  MatrixCheck -- Label present --> BlockchainExtendedMatrix
  ForkMatrix --> End
  ExtendedForkMatrix --> End
  BlockchainMatrix --> End
  BlockchainExtendedMatrix --> End
Loading

File-Level Changes

Change Details Files
Overhauled VM build GitHub Actions pipeline
  • Changed trigger from push to pull_request and added manual dispatch
  • Renamed jobs and applied matrix strategies for forks and blockchains
  • Added conditional extended jobs based on PR labels
  • Updated test commands to include --verify-test-amount-alltests and disabled browser API tests
.github/workflows/vm-build.yml
Standardized CodeQL workflow YAML formatting
  • Uniformized quote styles and indentation
  • Consolidated matrix include list formatting
  • Adjusted step indentation for checkout and init/analyze actions
.github/workflows/codeql.yml
Enhanced code coverage and reporting via codecov
  • Enforced CI pass requirement and wait_for_ci notifications
  • Adjusted precision, range, and coverage threshold rules
  • Enabled GitHub check annotations and Slack app integration
codecov.yml
Introduced custom executor in CircleCI config
  • Defined auth-enabled Docker executor and removed placeholder job
  • Updated workflow to use new executor and streamlined job definition
.circleci/config.yml
Added Dependabot version updates configuration
  • Created dependabot.yml at repo root and under workflows
  • Configured weekly update schedule and ecosystem placeholders
.github/dependabot.yml
.github/workflows/dependabot.yml
Bumped and added project dependencies
  • Upgraded lockfile-lint-api and body-parser versions
  • Added lodash to tx package and updated test to use escapeRegExp
package.json
packages/tx/package.json
packages/client/package.json
packages/tx/test/transactionRunner.spec.ts
Granted read permissions in browser workflow
  • Added contents: read permission block to workflow
.github/workflows/browser.yml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Originally posted by @sourcery-ai[bot] in #69 (comment)

Sub-issues

Metadata

Metadata

Assignees

Labels

dependenciesPull requests that update a dependency filedocumentationImprovements or additions to documentationgood first issueGood for newcomersinvalidThis doesn't seem rightjavascriptPull requests that update javascript code

Projects

Status

Backlog

Status

Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions