Continuous Integration


Continuous Integration

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 in the marketplace hereopen in new window.

Info

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

OptionDescriptionRequiredDefaultOptions
modeOperation mode.Norunrun, fork
networkNetwork selection.No--
forkAtHeightBlock height to fork at.No--
portListening port.No8011-
showCallsCall debug visibility.Nononenone, user, system, all
showStorageLogsStorage log visibility.Nononenone, read, write, all
showVmDetailsVM details visibility.Nononenone, all
showGasDetailsGas details visibility.Nononenone, all
resolveHashesEnable hash resolution.Nofalse-
logLog filter level.Noinfodebug, info, warn, error
logFilePathPath for the log file.Noera_test_node.log-
targetTarget architecture.Nox86_64-unknown-linux-gnux86_64-unknown-linux-gnu, x86_64-apple-darwin, aarch64-apple-darwin
versionVersion of era_test_node.Nolatest-

Usage Examples

Below provides usage examples for quick and more advanced setups.

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"