mirror of https://github.com/crytic/slither
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.1 KiB
67 lines
2.1 KiB
---
|
|
name: CI
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- dev
|
|
pull_request:
|
|
schedule:
|
|
# run CI every day even if no PRs/merges occur
|
|
- cron: '0 12 * * *'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
tests:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: ${{ (github.event_name == 'pull_request' && fromJSON('["ubuntu-latest"]')) || fromJSON('["ubuntu-latest", "windows-2022"]') }}
|
|
python: ${{ (github.event_name == 'pull_request' && fromJSON('["3.8", "3.12"]')) || fromJSON('["3.8", "3.9", "3.10", "3.11", "3.12"]') }}
|
|
type: ${{ (github.event_name == 'pull_request' && fromJSON('["data_dependency", "path_filtering","erc","find_paths","flat","interface", "printers","slither_config","upgradability"]')) || fromJSON('["data_dependency", "path_filtering","erc","find_paths","flat","interface", "printers","slither_config","upgradability", "cli", "dapp", "etherscan", "kspec", "simil", "truffle"]') }}
|
|
exclude:
|
|
# Requires nix
|
|
- os: windows-2022
|
|
type: dapp
|
|
# Requires nvm
|
|
- os: windows-2022
|
|
type: truffle
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Set up Python ${{ matrix.python }}
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
- name: Install dependencies
|
|
run: |
|
|
pip install ".[test]"
|
|
solc-select use 0.4.25 --always-install
|
|
solc-select use 0.8.0 --always-install
|
|
solc-select use 0.5.1 --always-install
|
|
|
|
- name: Set up nix
|
|
if: matrix.type == 'dapp'
|
|
uses: cachix/install-nix-action@V27
|
|
|
|
- name: Set up cachix
|
|
if: matrix.type == 'dapp'
|
|
uses: cachix/cachix-action@v15
|
|
with:
|
|
name: dapp
|
|
|
|
- name: Run Tests
|
|
env:
|
|
PYTHONUTF8: 1
|
|
TEST_TYPE: ${{ matrix.type }}
|
|
GITHUB_ETHERSCAN: ${{ secrets.GITHUB_ETHERSCAN }}
|
|
run: |
|
|
bash "scripts/ci_test_${TEST_TYPE}.sh"
|
|
|