Skip to content

chore: [C4] Add first batch of QA fixes #2381

chore: [C4] Add first batch of QA fixes

chore: [C4] Add first batch of QA fixes #2381

Workflow file for this run

# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Node.js CI - Build + Lint + Test
on: pull_request
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
- name: Use Node.js '16.15.0'
uses: actions/setup-node@v2
with:
node-version: "16.15.0"
cache: "npm"
- name: 📦 Install dependencies
run: npm ci
- name: 🔍 Run Solidity Linter
run: npm run lint:solidity
- name: 🎨 Run ESLint on JS/TS files
run: npm run lint
# This will also generate the Typechain types used by the Chai tests
- name: 🏗️ Build contract artifacts
run: npx hardhat compile
- name: 📤 cache dependencies + build
uses: actions/cache@v2
with:
path: |
artifacts
node_modules
types
contracts.ts
key: ${{ github.run_id }}
- name: 🧪 run import/requires tests
run: npm run test:importRequire
- name: 📚 generate ABI docs
run: npm run build:docs
- name: 🔍 check if ABI auto-generated docs need to be updated
run: |-
if [[ $(git diff --name-only) != "" ]];
then
echo "Error: Please generate ABI docs after making changes to Solidity code and Natspec comments!"
exit 1
fi
test-suites:
strategy:
matrix:
lsp:
[
"up",
"upinit",
"lsp1",
"lsp2",
"lsp4",
"lsp6",
"lsp6init",
"lsp7",
"lsp7init",
"lsp8",
"lsp8init",
"lsp9",
"lsp9init",
"lsp11",
"lsp11init",
"lsp17",
"lsp20",
"lsp20init",
"lsp23",
"universalfactory",
"reentrancy",
"reentrancyinit",
"mocks",
]
runs-on: ubuntu-latest
needs: [build]
steps:
- uses: actions/checkout@v3
- name: 📥 restore cache
uses: actions/cache@v2
id: "build-cache"
with:
path: |
artifacts
node_modules
types
contracts.ts
key: ${{ github.run_id }}
- name: Use Node.js v16
uses: actions/setup-node@v2
with:
node-version: "16.x"
cache: "npm"
- name: Install dependencies
if: steps.build-cache.outputs.cache-hit != 'true'
run: npm ci
- name: 🧪 run tests
run: npm run test:${{ matrix.lsp }}