Skip to content

9.3 devel, de-mono-repo #329

9.3 devel, de-mono-repo

9.3 devel, de-mono-repo #329

Workflow file for this run

name: CI
on:
push:
branches:
- master
pull_request:
workflow_dispatch:
jobs:
test:
strategy:
matrix:
os: [ubuntu-latest, macos-12, windows-2022]
name: Test on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.8"
- run: pip install .[testing]
name: Install
- run: pytest --durations 10
name: Run pytest
docs:
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup python
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Install
run: pip install .[docs]
- name: Build docs
run: cd docs && make html
- name: Build coverage
run: cd docs && make coverage
- name: Test coverage
run: |
if [ -s docs/_build/coverage/python.txt ]; then
echo "Doc coverage is missing for the for:"
cat docs/_build/coverage/python.txt
exit 1
fi
test-ecosystem:
strategy:
fail-fast: false
matrix:
group: [1, 2, 3, 4, 5]
name: Test Ecosystem
runs-on: ubuntu-22.04
steps:
- name: Setup python
uses: actions/setup-python@v4
with:
python-version: 3.8
- uses: actions/checkout@v3
with:
ref: master # FIXME: temporary workaround for == versions
path: archinfo
- run: pip install ./archinfo
# Checkout and install all the ecosystem packages
# Core packages
# pyvex
- run: git clone --recursive https://github.com/angr/pyvex.git
- run: pip install ./pyvex
# cle
- run: git clone https://github.com/angr/cle.git
- run: pip install ./cle
# TODO: remove this once angr installs claripy directly
- run: git clone https://github.com/angr/claripy.git
- run: pip install ./claripy
# TODO: remove this once angr installs ailment directly
- run: git clone https://github.com/angr/ailment.git
- run: pip install ./ailment
# angr
- run: git clone https://github.com/angr/angr.git
- run: sed -i 's/pyvex[^"]*/pyvex/g' angr/pyproject.toml # FIXME: temporary workaround for == versions
- run: pip install ./angr
# angr management
- run: git clone https://github.com/angr/angr-management.git
- run: pip install ./angr-management
# binaries
- run: git clone https://github.com/angr/binaries.git
# Extended packages
# angr-platforms
- run: git clone https://github.com/angr/angr-platforms.git
- run: pip install ./angr-platforms
# pysoot
- run: git clone https://github.com/angr/pysoot.git
- run: pip install ./pysoot
# archr, dep of rex
- run: git clone https://github.com/angr/archr.git
- run: pip install ./archr
# angrop
- run: git clone https://github.com/angr/angrop.git
- run: pip install ./angrop
# tracer, dep of rex
- run: git clone https://github.com/angr/tracer.git
- run: pip install ./tracer
# compilerex, patcherex
- run: git clone https://github.com/mechaphish/compilerex.git
- run: pip install ./compilerex
# povsim, dep of rex
- run: git clone https://github.com/mechaphish/povsim.git
- run: pip install ./povsim
# rex
- run: git clone https://github.com/angr/rex.git
- run: pip install ./rex
# driller
- run: git clone https://github.com/shellphish/driller.git
- run: pip install ./driller
# heaphopper
- run: git clone https://github.com/angr/heaphopper.git
- run: pip install ./heaphopper
# patcherex
- run: git clone https://github.com/angr/patcherex.git
- run: pip install ./patcherex
# Reinstall archinfo in case it was overwritten by one of the ecosystem packages
- run: git -C archinfo fetch ${{ github.ref }} && git -C archinfo checkout ${{ github.ref }}
- run: pip install ./archinfo[testing]
- name: Run pytest
run: |
pytest -rs -n auto --durations 10 --splits 5 --group ${{matrix.group}} \
pyvex \
cle \
angr \
angr-management \
angr-examples \
angr-platforms \
pysoot \
angrop \
rex \
driller \
heaphopper \
patcherex
env:
SKIP_SLOW_TESTS: 1