Skip to content

Version Packages

Version Packages #4645

name: hardhat-core CI
# Note: this workflow uses `macos-13` to use x86
on:
push:
branches:
- main
paths:
- ".github/workflows/hardhat-core-ci.yml"
- "config/**"
- "packages/hardhat-core/**"
- "packages/hardhat-common/**"
pull_request:
paths:
- ".github/workflows/hardhat-core-ci.yml"
- "config/**"
- "packages/hardhat-core/**"
- "packages/hardhat-common/**"
workflow_dispatch:
inputs:
test-all-solc-versions:
description: Test all solc versions
required: false
default: "false"
defaults:
run:
working-directory: packages/hardhat-core
concurrency:
group: ${{github.workflow}}-${{github.ref}}
cancel-in-progress: true
jobs:
test-core:
name: Test core (${{ matrix.os }}, Node ${{ matrix.node }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
node: [18.15]
os: ["macos-13", "ubuntu-latest", "windows-latest"]
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-env
with:
node-version: ${{ matrix.node }}
- name: Install package
run: pnpm install --frozen-lockfile --prefer-offline
- name: Cache stack trace artifacts
uses: actions/cache@v4
with:
path: |
packages/hardhat-core/test/internal/hardhat-network/stack-traces/test-files/artifacts
key: hardhat-network-stack-traces-tests-${{ hashFiles('packages/hardhat-core/test/internal/hardhat-network/stack-traces/test-files/**/*.sol') }}-${{ hashFiles('packages/hardhat-core/test/internal/hardhat-network/stack-traces/test-files/**/test.json') }}-${{ hashFiles('packages/hardhat-core/test/internal/hardhat-network/stack-traces/**/*.ts') }}-v4
- name: Build
run: pnpm build
- name: Run tests
env:
INFURA_URL: ${{ secrets.INFURA_URL }}
ALCHEMY_URL: ${{ secrets.ALCHEMY_URL }}
DO_NOT_SET_THIS_ENV_VAR____IS_HARDHAT_CI: true
FORCE_COLOR: 3
NODE_OPTIONS: --max-old-space-size=4096
HARDHAT_TESTS_ALL_SOLC_VERSIONS: ${{ github.event.inputs.test-all-solc-versions}}
run: pnpm test:except-provider
test-provider:
name: Test provider (${{ matrix.os }}, Node ${{ matrix.node }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
node: [18.15]
os: ["macos-13", "ubuntu-latest", "windows-latest"]
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-env
with:
node-version: ${{ matrix.node }}
- name: Install package
run: pnpm install --frozen-lockfile --prefer-offline
- name: Cache EDR RPC cache
uses: actions/cache@v4
with:
path: |
packages/hardhat-core/test/internal/hardhat-network/edr-cache
key: hardhat-network-edr-cache-v2
- name: Build
run: pnpm build
- name: Run tests
env:
INFURA_URL: ${{ secrets.INFURA_URL }}
ALCHEMY_URL: ${{ secrets.ALCHEMY_URL }}
DO_NOT_SET_THIS_ENV_VAR____IS_HARDHAT_CI: true
FORCE_COLOR: 3
run: pnpm test:provider
test_types_node:
name: Test different versions of @types/node
runs-on: ubuntu-latest
strategy:
matrix:
# TODO: Currently there is no @types/node for Node 22,
# include it when it is available.
node: [18, 20]
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-env
with:
node-version: ${{ matrix.node }}
- name: Install
run: pnpm install --frozen-lockfile --prefer-offline
- name: Install @types/node
run: pnpm add --save-dev @types/node@${{ matrix.node }}
- name: Build
run: pnpm build
- name: Run tests
env:
DO_NOT_SET_THIS_ENV_VAR____IS_HARDHAT_CI: true
FORCE_COLOR: 3
run: pnpm test:except-tracing