Use mprocessing config for evm report workers #4126
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
schedule: | |
# run CI every day even if no PRs/merges occur | |
- cron: '0 12 * * *' | |
jobs: | |
# needs to run only on pull_request | |
lint: | |
runs-on: ubuntu-18.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.7 | |
- name: Lint | |
if: github.event_name == 'pull_request' | |
env: | |
BASE_SHA: ${{ github.event.pull_request.base.sha }} | |
run: | | |
pip install -e .[lint] | |
black --version | |
git fetch --depth=1 origin $BASE_SHA | |
echo "Files Changed:" | |
git diff --name-only $BASE_SHA... | tee .diff_names.txt | |
NAMES=$(cat .diff_names.txt | python scripts/pyfile_exists.py) | |
if test -z $NAMES | |
then | |
black --diff --check . | |
else | |
echo $NAMES | xargs black --diff --check | |
fi | |
mypy --version | |
mypy | |
tests: | |
runs-on: ubuntu-18.04 | |
strategy: | |
matrix: | |
type: ["ethereum_truffle", "ethereum_bench", "examples", "ethereum", "ethereum_vm", "native", "wasm", "wasm_sym", "other"] | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.7 | |
- name: Install NPM | |
uses: actions/setup-node@v1 | |
with: | |
node-version: '16.x' | |
- name: Install dependencies | |
env: | |
TEST_TYPE: ${{ matrix.type }} | |
run: | | |
#install utils | |
pip install coveralls | |
pip install -e ".[dev-noks]" | |
# Get version info | |
pip freeze | |
z3 --version | |
#install cvc4 | |
sudo wget -O /usr/bin/cvc4 https://github.com/CVC4/CVC4/releases/download/1.7/cvc4-1.7-x86_64-linux-opt | |
sudo chmod +x /usr/bin/cvc4 | |
cvc4 --version | |
#install yices | |
sudo wget -O yices.tar.gz https://yices.csl.sri.com/releases/2.6.2/yices-2.6.2-x86_64-pc-linux-gnu-static-gmp.tar.gz | |
sudo tar -xzf yices.tar.gz | |
cd yices-2.6.2 | |
sudo ./install-yices | |
yices --version | |
#install boolector | |
mkdir -p /tmp/build | |
cd /tmp/build | |
git clone https://github.com/boolector/boolector.git | |
cd boolector | |
# Version 3.2.1 | |
git checkout "f61c0dcf4a76e2f7766a6358bfb9c16ca8217224" | |
git log -1 --oneline > ../boolector.commit | |
./contrib/setup-lingeling.sh | |
./contrib/setup-btor2tools.sh | |
./configure.sh | |
cd build | |
make -j4 | |
mkdir -p /tmp/boolector | |
sudo make DESTDIR=/usr install | |
# Install solc unconditionally because it only takes a second or two | |
sudo wget -O /usr/bin/solc https://github.com/ethereum/solidity/releases/download/v0.4.24/solc-static-linux | |
sudo chmod +x /usr/bin/solc | |
- name: Run Tests | |
env: | |
TEST_TYPE: ${{ matrix.type }} | |
run: | | |
cp scripts/run_tests.sh . | |
./run_tests.sh | |
- name: Coveralls Parallel | |
run: | | |
coveralls --service=github | |
env: | |
COVERALLS_PARALLEL: true | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# Send notification when all tests have finished to combine coverage results | |
coverage-finish: | |
needs: tests | |
runs-on: ubuntu-18.04 | |
steps: | |
- name: Coveralls Finished | |
uses: coverallsapp/github-action@v1.1.2 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
parallel-finished: true | |
upload: | |
runs-on: ubuntu-18.04 | |
if: github.event_name == 'schedule' | |
needs: tests | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.7 | |
- name: Build Dist | |
run: | | |
python3 -m pip install wheel | |
python3 setup.py --dev_release sdist bdist_wheel | |
- name: Upload to PyPI | |
uses: pypa/gh-action-pypi-publish@v1.2.2 | |
with: | |
password: ${{ secrets.PYPI_UPLOAD }} |