types: [opened, reopened, synchronize]
name: CI
jobs:
+ test:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: ['3.6', '3.7', '3.8', pypy3]
+ steps:
+ - name: Check out source code
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install dependencies
+ run: |
+ sudo add-apt-repository ppa:sri-csl/formal-methods
+ sudo apt-get update
+ sudo apt-get install yices2
+ pip install setuptools setuptools_scm wheel coverage codecov yowasp-yosys nmigen-yosys
+ pip install -e .
+ - name: Preserve wasmtime cache
+ uses: actions/cache@v1
+ with:
+ path: ~/.cache/wasmtime
+ key: ${{ runner.os }}-wasmtime
+ - name: Run tests
+ run: |
+ export NMIGEN_USE_YOSYS=builtin YOSYS=yowasp-yosys SBY=yowasp-sby SMTBMC=yowasp-yosys-smtbmc
+ python -m unittest discover
+ codecov
document:
runs-on: ubuntu-latest
steps:
+++ /dev/null
-dist: bionic
-language: python
-python:
- - "3.6"
- - "3.7"
- - "3.8"
- - "pypy3"
-cache:
- directories:
- - "$HOME/.local"
- - "$HOME/.cache/wasmtime"
-before_install:
- - if ! yices -V; then (git clone https://github.com/SRI-CSL/yices2.git && cd yices2 && autoconf && ./configure --prefix=$HOME/.local && make && make install); fi
- - pip install coverage codecov pyvcd Jinja2 yowasp-yosys nmigen-yosys
- - export NMIGEN_USE_YOSYS=builtin YOSYS=yowasp-yosys
-install:
- - python setup.py develop
-script:
- - coverage run -m unittest discover
- - codecov
-matrix:
- fast_finish: true