Skip to content

run forge test directly #498

run forge test directly

run forge test directly #498

Workflow file for this run

name: Testing
on: [push]
jobs:
contract-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
persist-credentials: false
# fix SSH error: git@github.com: Permission denied (publickey).
# copy from https://github.com/actions/setup-node/issues/214#issuecomment-810829250
- name: Reconfigure git to use HTTP authentication
run: >
git config --global url."https://github.com/".insteadOf
ssh://git@github.com/
- name: Get npm cache directory
id: npm-cache
run: |
echo "dir=$(npm config get cache)" >> $GITHUB_OUTPUT
- uses: actions/cache@v2
with:
path: |
${{ steps.npm-cache.outputs.dir }}
**/node_modules
key: ${{ github.job }}-${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ github.job }}-${{ runner.os }}-node-
- name: Use Node.js 16.x
uses: actions/setup-node@v1
with:
node-version: 16.x
- name: Install contract package dependencies
run: npm ci
- name: Build contract package
run: npm run build
- name: Run contract tests
run: npm run test
env:
# to solve problem of memory leak https://stackoverflow.com/a/59572966
NODE_OPTIONS: "--max-old-space-size=8192"
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
persist-credentials: false
# fix SSH error: git@github.com: Permission denied (publickey).
# copy from https://github.com/actions/setup-node/issues/214#issuecomment-810829250
- name: Reconfigure git to use HTTP authentication
run: >
git config --global url."https://github.com/".insteadOf
ssh://git@github.com/
- name: Get npm cache directory
id: npm-cache
run: |
echo "dir=$(npm config get cache)" >> $GITHUB_OUTPUT
- uses: actions/cache@v2
with:
path: |
${{ steps.npm-cache.outputs.dir }}
**/node_modules
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Use Node.js 16.x
uses: actions/setup-node@v1
with:
node-version: 16.x
- name: Install dependencies
run: npm ci
- name: Run lint
run: npm run lint
foundry-test:
name: Foundry Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
persist-credentials: false
- name: Get npm cache directory
id: npm-cache
run: |
echo "dir=$(npm config get cache)" >> $GITHUB_OUTPUT
- uses: actions/cache@v2
with:
path: |
${{ steps.npm-cache.outputs.dir }}
**/node_modules
key: ${{ github.job }}-${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ github.job }}-${{ runner.os }}-node-
- name: Use Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: 16.x
- name: Install contract package dependencies
run: npm ci
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Build Uniswap in foundry for testing
run: npm run foundry-build-uniswap
- name: Run tests
env:
OPTIMISM_WEB3_ENDPOINT_ARCHIVE: ${{ vars.OPTIMISM_WEB3_ENDPOINT_ARCHIVE }} # For fork tests
run: |
forge test -vvv
- name: Run snapshot
run: forge snapshot