Continuous Integration

Use a GitHub Action to integrate era-test-node into your CI/CD environment.


A GitHub Action is available for integrating era-test-node into your CI/CD environments. This action offers high configurability and streamlines the process of testing your applications in an automated way.

You can find the GitHub Action available in the marketplace.

In CI tests, use 127.0.0.1 as the URL in hardhat.config.ts or for the provider to avoid 'Cannot connect to network' errors.

Configuration Options

Option
Description
Required
Default
Options

mode

Operation mode.

No

run

run, fork

network

Network selection.

No

-

-

forkAtHeight

Block height to fork at.

No

-

-

port

Listening port.

No

8011

-

showCalls

Call debug visibility.

No

none

none, user, system, all

showStorageLogs

Storage log visibility.

No

none

none, read, write, all

showVmDetails

VM details visibility.

No

none

none, all

showGasDetails

Gas details visibility.

No

none

none, all

resolveHashes

Enable hash resolution.

No

false

-

log

Log filter level.

No

info

debug, info, warn, error

logFilePath

Path for the log file.

No

era_test_node.log

-

target

Target architecture.

No

x86_64-unknown-linux-gnu

x86_64-unknown-linux-gnu, x86_64-apple-darwin, aarch64-apple-darwin

version

Version of era_test_node.

No

latest

-


Examples

The following are examples of configuration for your GitHub Action.

Quickstart

name: Run Era Test Node Action

on:
  push:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Run Era Test Node
        uses: dutterbutter/era-test-node-action@latest

Advanced

With configuration options:

name: Run Era Test Node Action

on:
  push:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Run Era Test Node
        uses: dutterbutter/era-test-node-action@latest
        with:
          mode: "run"
          showCalls: "user"
          showStorageLogs: "read"
          showVmDetails: "all"
          showGasDetails: "all"
          resolveHashes: "true"
          log: "info"
          logFilePath: "era_test_node.log"
          target: "x86_64-unknown-linux-gnu"

With upload log file to artifacts:

name: Run Era Test Node Action

on:
  pull_request:
    branches: [main]
  workflow_dispatch:
jobs:
  test:
    name: unit-tests
    strategy:
      matrix:
        platform: [ubuntu-latest]
    runs-on: ${{ matrix.platform }}

    steps:
      - name: Checkout Code
        uses: actions/checkout@v3

      - name: Run Era Test Node
        uses: dutterbutter/era-test-node-action@latest
        with:
          mode: "fork"
          network: "mainnet"
          forkAtHeight: "1855248"
          showCalls: "user"
          showStorageLogs: "read"
          showVmDetails: "all"
          showGasDetails: "all"
          resolveHashes: "true"
          log: "info"
          logFilePath: "era_test_node.log"
          target: "x86_64-unknown-linux-gnu"
          releaseTag: "latest"

      - name: Install Dependencies
        run: yarn install

      - name: Run Tests
        run: |
          yarn test:contracts

      - name: Upload era_test_node log
        uses: actions/upload-artifact@v3
        with:
          name: era_test_node-log
          path: era_test_node.log

With Fork:

name: Run Era Test Node Action

on:
  push:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Run Era Test Node
        uses: dutterbutter/era-test-node-action@latest
        with:
          mode: "fork"
          network: "mainnet"
          forkAtHeight: "1855248"
          showCalls: "user"
          showStorageLogs: "read"
          showVmDetails: "all"
          showGasDetails: "all"
          resolveHashes: "true"
          log: "info"
          logFilePath: "era_test_node.log"
          target: "x86_64-unknown-linux-gnu"
          releaseTag: "latest"

Last updated