Skip to content

fix: remove force exit from blackbox tests #10129

fix: remove force exit from blackbox tests

fix: remove force exit from blackbox tests #10129

Workflow file for this run

name: 'Build'
on:
push:
branches:
- '4.x'
tags:
- v4*
pull_request:
branches:
- '4.x'
types: [opened, reopened, synchronize]
jobs:
build:
strategy:
matrix:
node: ['18', '20.17.0']
name: Build CJS
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: yarn
- run: yarn install --ignore-scripts --frozen-lockfile
- run: npx ts-node scripts/init.ts
- run: yarn build:cjs
- uses: actions/cache/save@v4
with:
path: ./
key: web3-${{ matrix.node }}-${{ github.sha }}
build-esm:
name: Build ESM
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v4
with:
node-version: 18
- uses: actions/cache/restore@v4
with:
path: ./
key: web3-18-${{ github.sha }}
- run: yarn build:esm
build-types:
name: Build Types
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v4
with:
node-version: 18
- uses: actions/cache/restore@v4
with:
path: ./
key: web3-18-${{ github.sha }}
- run: yarn build:types
lint:
name: Lint
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v4
with:
node-version: 18
- uses: actions/cache/restore@v4
with:
path: ./
key: web3-18-${{ github.sha }}
- run: npx ts-node scripts/init.ts
- uses: actions/cache@v4
with:
path: |
packages/web3/.eslintcache
packages/web3-core/.eslintcache
packages/web3-eth/.eslintcache
packages/web3-eth-abi/.eslintcache
packages/web3-eth-accounts/.eslintcache
packages/web3-eth-contract/.eslintcache
packages/web3-eth-ens/.eslintcache
packages/web3-eth-iban/.eslintcache
packages/web3-eth-personal/.eslintcache
packages/web3-net/.eslintcache
packages/web3-providers-http/.eslintcache
packages/web3-providers-ws/.eslintcache
packages/web3-rpc-methods/.eslintcache
packages/web3-types/.eslintcache
packages/web3-utils/.eslintcache
packages/web3-validator/.eslintcache
tools/web3-plugin-example/.eslintcache
key: ${{ runner.os }}-eslintcache-${{ github.ref_name }}
- run: yarn lint
build-web:
name: Build Web
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v4
with:
node-version: 18
- uses: actions/cache/restore@v4
with:
path: ./
key: web3-18-${{ github.sha }}
- name: Restore default branch stats
if: github.event_name != 'push'
uses: actions/cache/restore@v4
with:
path: packages/web3/dist/4.x.json
key: web3-bundle-stats-4x-${{ github.event.pull_request.base.sha }}
- run: yarn build:web:analyze
env:
STATS_FILE: ${{ github.ref_name }}.json
- name: Compare bundle stats
uses: github/[email protected]
continue-on-error: true
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
current-stats-json-path: 'packages/web3/dist/${{ github.ref_name }}.json'
base-stats-json-path: 'packages/web3/dist/4.x.json'
- name: Cache default branch stats
uses: actions/cache/save@v4
if: github.event_name == 'push' && github.ref == 'refs/heads/4.x'
with:
path: packages/web3/dist/${{ github.ref_name }}.json
key: web3-bundle-stats-4x-${{ github.sha }}
unit:
name: Unit Tests
needs: build
runs-on: ubuntu-latest
strategy:
matrix:
node: ['18', '20.17.0']
steps:
- uses: actions/setup-node@v4
with:
architecture: x64
node-version: ${{ matrix.node }}
- uses: actions/cache/restore@v4
with:
path: ./
key: web3-${{ matrix.node }}-${{ github.sha }}
- run: yarn test:unit
continue-on-error: ${{ matrix.node == '20.17.0' }}
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
flags: UnitTests
token: ${{ secrets.CODECOV_TOKEN }}
if: ${{ matrix.node == 18 }}
integration-hardhat:
name: Integration hardhat
needs: build
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/setup-node@v4
with:
node-version: 18
- uses: actions/cache/restore@v4
with:
path: ./
key: web3-18-${{ github.sha }}
- run: npx hardhat node &
- run: yarn test:e2e:hardhat:http
shell: bash
e2e-geth:
name: Integration # (geth with HTTP, IPC & WS)
needs: build
runs-on: ubuntu-latest
env:
INFURA_SEPOLIA_HTTP: ${{ secrets.INFURA_SEPOLIA_HTTP }}
INFURA_SEPOLIA_WS: ${{ secrets.INFURA_SEPOLIA_WS }}
strategy:
fail-fast: false
matrix:
mode: ['ipc', 'ws', 'http']
steps:
- uses: actions/setup-node@v4
with:
node-version: 18
- uses: actions/cache/restore@v4
with:
path: ./
key: web3-18-${{ github.sha }}
- run: yarn test:e2e:geth:${{ matrix.mode }}
shell: bash
e2e-browsers:
name: End-to-End hardhat:ws
needs: build
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
browser: ['electron', 'chrome', 'firefox']
steps:
- uses: actions/setup-node@v4
with:
node-version: 18
- uses: browser-actions/setup-firefox@latest
if: matrix.browser == 'firefox'
- uses: actions/cache/restore@v4
with:
path: ./
key: web3-18-${{ github.sha }}
- run: npx hardhat node &
- run: npm install --no-package-lock --no-save --force cypress
- name: Cypress run
uses: cypress-io/github-action@v4
with:
install: false
command: yarn test:e2e:hardhat:ws:${{ matrix.browser }}
cache-key: node-v18-on-${{ matrix.browser }}-hash-${{ hashFiles('yarn.lock') }}
deploy-docs:
name: Docs CloudFlare Deploy
needs: build
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
cache: yarn
node-version: '18'
- uses: actions/cache/restore@v4
with:
path: ./
key: web3-18-${{ github.sha }}
- run: yarn install --ignore-scripts
- run: yarn build:cjs
- run: yarn run build:docs
- name: Publish to Cloudflare Pages
uses: cloudflare/pages-action@v1
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: 2238a825c5aca59233eab1f221f7aefb
projectName: web3-js-docs
directory: ./docs/build
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
benchmark:
name: Benchmark Tests
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v4
with:
node-version: 18
- uses: actions/cache/restore@v4
with:
path: ./
key: web3-18-${{ github.sha }}
# @octokit/core not supported on node 16, so I can't add it to the package.json
- run: npm install --no-package-lock --no-save --force @octokit/[email protected]
- name: Restore main branch benchmark data
uses: actions/cache/restore@v4
with:
path: web3-benchmark-main.json
key: ${{ runner.os }}-web3-benchmark-main
- run: yarn test:benchmark
- name: Compare benchmark result and make comment
uses: benchmark-action/github-action-benchmark@v1
with:
# What benchmark tool the output.txt came from
tool: 'benchmarkjs'
# Where the output from the benchmark tool is stored
output-file-path: benchmark-data.txt
# Where the previous data file is stored
external-data-json-path: web3-benchmark-main.json
# Workflow will fail when an alert happens
fail-on-alert: false
# GitHub API token to make a commit comment
github-token: ${{ secrets.GITHUB_TOKEN }}
# Enable alert commit comment
comment-always: true
save-data-file: false
# copy comment from commit to Pull Request
- run: node scripts/copyCommitCommentToPrComment.js ${{ secrets.GITHUB_TOKEN }} ${{ github.event.pull_request.head.sha }} ${{ github.event.number }}
- name: Compare benchmark result and fail if threshold is reached
uses: benchmark-action/github-action-benchmark@v1
with:
# What benchmark tool the output.txt came from
tool: 'benchmarkjs'
# Where the output from the benchmark tool is stored
output-file-path: benchmark-data.txt
# Where the previous data file is stored
external-data-json-path: web3-benchmark-main.json
# Workflow will fail when an alert happens
fail-on-alert: true
# Enable alert commit comment
alert-threshold: '200%'
comment-always: false
- name: Check and delete cache if it exists
run: |
if gh cache list | grep -q "${{ runner.os }}-web3-benchmark-main"; then
echo "Cache found. Deleting..."
gh cache delete "${{ runner.os }}-web3-benchmark-main"
else
echo "No matching cache found. Skipping delete."
fi
if: github.event_name == 'push' && github.ref == 'refs/heads/4.x'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Save main branch benchmark data
uses: actions/cache/save@v4
if: github.event_name == 'push' && github.ref == 'refs/heads/4.x'
with:
path: web3-benchmark-main.json
key: ${{ runner.os }}-web3-benchmark-main