Skip to content

L-01, L-02 & L-03 addendum #1466

L-01, L-02 & L-03 addendum

L-01, L-02 & L-03 addendum #1466

Workflow file for this run

name: DeFi
on:
pull_request:
types: [opened, reopened, synchronize]
push:
branches:
- 'master'
- 'staging'
- 'stable'
workflow_dispatch:
concurrency:
cancel-in-progress: true
group: ${{ github.ref_name }}
jobs:
contracts-lint:
name: "Contracts Linter"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: "16.x"
cache: "yarn"
cache-dependency-path: contracts/yarn.lock
- run: yarn install --frozen-lockfile
working-directory: ./contracts
# this will compile and output the contract sizes
- run: npx hardhat compile
env:
CONTRACT_SIZE: true
working-directory: ./contracts
- run: yarn run lint
working-directory: ./contracts
- run: yarn prettier:check
working-directory: ./contracts
contracts-test:
name: "Contracts Unit Tests"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: "16.x"
cache: "yarn"
cache-dependency-path: contracts/yarn.lock
- run: yarn install --frozen-lockfile
working-directory: ./contracts
# this will run the unit tests and report the gas usage
- name: Run Unit Tests
env:
REPORT_GAS: true
run: yarn run test
working-directory: ./contracts
contracts-unit-coverage:
name: "Contracts Unit Coverage"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: "16.x"
cache: "yarn"
cache-dependency-path: contracts/yarn.lock
- run: yarn install --frozen-lockfile
working-directory: ./contracts
- name: Run Unit Coverage
run: yarn run test:coverage
working-directory: ./contracts
- uses: actions/upload-artifact@v3
with:
name: unit-test-coverage-${{ github.sha }}
path: |
./contracts/coverage.json
./contracts/coverage/**/*
retention-days: 1
contracts-forktest:
name: "Contracts Fork Tests ${{ matrix.chunk_id }}"
runs-on: ubuntu-latest
strategy:
matrix:
chunk_id: [0,1,2,3]
continue-on-error: true
env:
HARDHAT_CACHE_DIR: ./cache
PROVIDER_URL: ${{ secrets.PROVIDER_URL }}
ONEINCH_API: ${{ secrets.ONEINCH_API }}
CHUNK_ID: "${{matrix.chunk_id}}"
MAX_CHUNKS: "4"
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: "16.x"
cache: "yarn"
cache-dependency-path: contracts/yarn.lock
- uses: actions/cache@v3
id: hardhat-cache
with:
path: contracts/cache
key: ${{ runner.os }}-hardhat-${{ hashFiles('contracts/cache/*.json') }}
restore-keys: |
${{ runner.os }}-hardhat-cache
- run: yarn install --frozen-lockfile
working-directory: ./contracts
- run: yarn run test:coverage:fork
working-directory: ./contracts
- uses: actions/upload-artifact@v3
with:
name: fork-test-coverage-${{ github.sha }}-runner${{ matrix.chunk_id }}
path: |
./contracts/coverage.json
./contracts/coverage/**/*
retention-days: 1
coverage-uploader:
name: "Upload Coverage Reports"
runs-on: ubuntu-latest
needs:
- contracts-unit-coverage
- contracts-forktest
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: "16.x"
cache: "yarn"
cache-dependency-path: contracts/yarn.lock
- uses: actions/cache@v3
id: hardhat-cache
with:
path: contracts/cache
key: ${{ runner.os }}-hardhat-${{ hashFiles('contracts/cache/*.json') }}
restore-keys: |
${{ runner.os }}-hardhat-cache
- run: yarn install --frozen-lockfile
working-directory: ./contracts
- name: Download all reports
uses: actions/download-artifact@v3
- uses: codecov/codecov-action@v3
with:
fail_ci_if_error: true
dapp-lint:
name: "OUSD DApp Linter"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: "16.x"
cache: "yarn"
cache-dependency-path: dapp/yarn.lock
- run: yarn install --frozen-lockfile
working-directory: ./dapp
- run: yarn prettier:check
working-directory: ./dapp
dapp-oeth-lint:
name: "OETH DApp Linter"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: "16.x"
cache: "yarn"
cache-dependency-path: dapp-oeth/yarn.lock
- run: yarn install --frozen-lockfile
working-directory: ./dapp-oeth
- run: yarn prettier:check
working-directory: ./dapp-oeth
slither:
name: "Slither"
# As long as we need Python 3.6 here in the test, we can only use up to Ubuntu 20.
# https://github.com/rwth-i6/returnn/issues/1226
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.6
uses: actions/setup-python@v4
with:
python-version: 3.6
- name: Install dependencies
run: |
wget https://github.com/ethereum/solidity/releases/download/v0.8.7/solc-static-linux
chmod +x solc-static-linux
sudo mv solc-static-linux /usr/local/bin/solc
pip3 install slither-analyzer
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: "16.x"
cache: "yarn"
cache-dependency-path: contracts/yarn.lock
- run: yarn install --frozen-lockfile
working-directory: ./contracts
- name: Test with Slither
working-directory: ./contracts
run: yarn run slither
snyk:
name: "Snyk"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Run Snyk to check for vulnerabilities
uses: snyk/actions/node@master
continue-on-error: true
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
args: --severity-threshold=high --all-projects