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 here.
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
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 | - |
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"