diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7c51c487..a2499fe3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,12 +8,28 @@ on: workflow_dispatch: jobs: - ci: - uses: angr/ci-settings/.github/workflows/angr-ci.yml@master - windows: - uses: ./.github/workflows/windows.yml - macos: - uses: ./.github/workflows/macos.yml + 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: python -m venv $HOME/venv + name: Create venv + shell: bash + - run: | + source $HOME/venv/bin/activate + pip install .[testing] + name: Install + - run: | + source $HOME/venv/bin/activate + pytest -n auto + name: Run pytest docs: runs-on: ubuntu-22.04 steps: diff --git a/.github/workflows/ecosystem.yml b/.github/workflows/ecosystem.yml new file mode 100644 index 00000000..218d47bc --- /dev/null +++ b/.github/workflows/ecosystem.yml @@ -0,0 +1,109 @@ +name: Ecosystem CI + +on: + push: + branches: + - master + pull_request: + workflow_dispatch: + +jobs: + 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: + path: archinfo + - run: pip install ./archinfo + + # Checkout and install all the ecosystem packages + # Core packages + # pyvex + - run: gh repo clone angr/pyvex + - run: pip install ./pyvex + # cle + - run: gh repo clone angr/cle + - run: pip install ./cle + # TODO: remove this once angr installs claripy directly + - run: gh repo clone angr/claripy + - run: pip install ./claripy + # TODO: remove this once angr installs ailment directly + - run: gh repo clone angr/ailment + - run: pip install ./ailment + # angr + - run: gh repo clone angr/angr + - run: pip install ./angr + # angr management + - run: gh repo clone angr/angr-management + - run: pip install ./angr-management + # binaries + - run: gh repo clone angr/binaries + + # Extended packages + # angr-platforms + - run: gh repo clone angr/angr-platforms + - run: pip install ./angr-platforms + # pysoot + - run: gh repo clone angr/pysoot + - run: pip install ./pysoot + # archr, dep of rex + - run: gh repo clone angr/archr + - run: pip install ./archr + # angrop + - run: gh repo clone angr/angrop + - run: pip install ./angrop + # tracer, dep of rex + - run: gh repo clone angr/tracer + - run: pip install ./tracer + # compilerex, patcherex + - run: gh repo clone mechaphish/compilerex + - run: pip install ./compilerex + # colorguard, dep of rex + - run: gh repo clone mechaphish/colorguard + - run: pip install ./colorguard + # povsim, dep of rex + - run: gh repo clone mechaphish/povsim + - run: pip install ./angr + # rex + - run: gh repo clone angr/rex + - run: pip install ./rex + # driller + - run: gh repo clone shellphish/driller + - run: pip install ./driller + # heaphopper + - run: gh repo clone angr/heaphopper + - run: pip install ./heaphopper + # patcherex + - run: gh repo clone angr/patcherex + - run: pip install ./patcherex + + # Reinstall archinfo in case it was overwritten by one of the ecosystem packages + - run: pip install ./archinfo[testing] + + - name: Run pytest + run: | + pytest -rs -n auto --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 diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml deleted file mode 100644 index 62585605..00000000 --- a/.github/workflows/macos.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Test on macOS - -on: - workflow_dispatch: - workflow_call: - -jobs: - macos: - name: Test macOS - runs-on: macos-12 - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - python-version: "3.8" - - run: python -m venv $HOME/venv - name: Create venv - shell: bash - - run: | - source $HOME/venv/bin/activate - pip install .[testing] - name: Install - - run: | - source $HOME/venv/bin/activate - pytest -n auto - name: Run pytest diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml deleted file mode 100644 index f6dfac2c..00000000 --- a/.github/workflows/nightly-ci.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: Nightly CI - -on: - schedule: - - cron: "0 0 * * *" - workflow_dispatch: - -jobs: - ci: - uses: angr/ci-settings/.github/workflows/angr-ci.yml@master - with: - nightly: true - secrets: inherit diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml deleted file mode 100644 index a16037e3..00000000 --- a/.github/workflows/windows.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Test on Windows - -on: - workflow_dispatch: - workflow_call: - -jobs: - windows: - name: Test Windows - runs-on: windows-2022 - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 - with: - python-version: "3.8" - - run: python -m venv $HOME/venv - name: Create venv - shell: bash - - run: | - call %USERPROFILE%\venv\Scripts\activate - pip install .[testing] - name: Install - shell: cmd - - run: | - call %USERPROFILE%\venv\Scripts\activate - pytest -n auto - name: Run pytest - shell: cmd