9.3 devel, de-mono-repo #367
This file contains 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: | |
workflow_dispatch: | |
jobs: | |
test: | |
strategy: | |
matrix: | |
os: [ubuntu-22.04, 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, 6, 7, 8, 9, 10] | |
name: Test Ecosystem | |
runs-on: ubuntu-20.04 | |
steps: | |
- run: sudo apt update; sudo apt install -y libegl1 | |
- name: Setup python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.8 | |
- name: Setup java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '8' | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
path: archinfo | |
- run: git -C archinfo checkout master # FIXME: temporary workaround for == versions | |
- 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 -b set-heap-from-env | |
- run: pip install -e ./pysoot # Regular install doesn't work... see angr/pysoot#12 | |
# 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 | |
# colorguard, test dep of rex | |
- run: git clone https://github.com/mechaphish/colorguard.git | |
- run: pip install ./colorguard | |
# 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 checkout - | |
- run: pip install ./archinfo[testing] | |
- name: Run pytest | |
run: | | |
ulimit -v 6291456 | |
pytest -rfEs -n 1 --durations 10 --splits 10 --group ${{matrix.group}} cle angr | |
# angr-platforms pysoot angrop rex driller heaphopper patcherex | |
echo "Return code: $?" | |
env: | |
SKIP_SLOW_TESTS: 1 | |
PYSOOT_HEAP_SIZE: 2147483648 # 2GB |