Skip to content

Workflow file for this run

name: Run Benchmark
on:
pull_request:
branches:
- 'main'
- 'develop'
workflow_dispatch: # Ручной запуск через UI Гитхаба
jobs:
RunBenchmark:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Update pip
run: python -m pip install --upgrade pip
- name: Install Slither
run: python -m pip install slither-analyzer
- name: Install Setuptools
run: python -m pip install setuptools
- name: Install Slitherin
run: python -m pip install slitherin
- name: Install benchmark requirements
run: python -m pip install -r requirements.txt
- name: Configure
run: |
mv example.config.py config.py
slither --list-detectors
- name: Run Benchmark
run: python runner.py -i contracts/mainnet -l 100 --output out.csv --extra-output extra_out.csv --skip-duplicates --skip-libs
- name: Upload sheet
run: |
echo $GOOGLE_JWT > service_account.json
python save_sheet.py -i out.csv -sa service_account.json -si $GOOGLE_SHEET_ID -ln test
env:
GOOGLE_JWT : ${{secrets.SERVICE_ACCOUNT}}
GOOGLE_SHEET_ID : ${{ secrets.GOOGLE_SHEET_ID }}
- name: 'Upload Artifact'
uses: actions/upload-artifact@v3
with:
name: mainnet_extra
path: extra_out.csv
RunBenchmarkArbitrum:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Update pip
run: python -m pip install --upgrade pip
- name: Install Slither
run: python -m pip install slither-analyzer
- name: Install Setuptools
run: python -m pip install setuptools
- name: Install Slitherin
run: python -m pip install slitherin
- name: Install benchmark requirements
run: python -m pip install -r requirements.txt
- name: Configure
run: mv example.config.py config.py
- name: Run Benchmark
run: python runner.py -i contracts/arbitrum -l 100 --extra-output extra_out.csv
- name: 'Upload Artifact'
uses: actions/upload-artifact@v3
with:
name: arbitrum_extra
path: extra_out.csv
RunBenchmarkOZ:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Update pip
run: python -m pip install --upgrade pip
- name: Install Slither
run: python -m pip install slither-analyzer
- name: Install Setuptools
run: python -m pip install setuptools
- name: Install Slitherin
run: python -m pip install slitherin
- name: Install benchmark requirements
run: python -m pip install -r requirements.txt
- name: Configure
run: mv example.config.py config.py
- name: Run Benchmark
run: python runner.py -i contracts/openzeppelin -o oz.csv -eo oz_extra.csv
- name: 'Upload Artifact'
uses: actions/upload-artifact@v3
with:
name: oz_extra
path: oz_extra.csv
- name: 'Upload Artifact'
uses: actions/upload-artifact@v3
with:
name: oz
path: oz.csv